【问题标题】:What is the preferred method for uploading to a server from Android?从 Android 上传到服务器的首选方法是什么?
【发布时间】:2009-11-25 04:53:10
【问题描述】:

我一直在尝试找到一种将视频从 Android 设备上传到 API 的方法,但我还没有找到一个好的方法。我在网上找到的大部分信息似乎都已经过时了(其中很多来自去年)。他们中的大多数都在使用这样的方法:http://getablogger.blogspot.com/2008/01/android-how-to-post-file-to-php-server.html

使用多部分 POST 将内容上传到 API 的最简单/首选方式是什么?

【问题讨论】:

  • 如果我的回答对您有帮助,如果您接受,我将不胜感激。否则,请告诉我如何提供更多帮助。

标签: java android http


【解决方案1】:

我正在针对 Campfire 聊天服务的“API”开发一个 Android 应用。这里的代码通过multipart POST上传文件:

http://github.com/klondike/android-campfire/blob/master/src/com/github/klondike/java/campfire/Room.java#L175

“dos.close()”行之后的所有内容都与检查响应以检测帖子是否成功有关。

并非每个多部分帖子都需要其中的所有内容;例如,X-Requested-With 标头是 Campfire 特有的,User-Agent 是可选的,Cookie 是因为我必须保持登录状态。此外,关于间距的“OH MY GOD”评论可能是 Campfire 特有的.

我听说 Apache 的最新版本的 HttpClient 库具有更方便的内置多部分支持,但是 Google 对它执行的最后一次同步到 Android 并没有包含这些功能,所以我在这里做手动。

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    您可以使用来自 Apache Software Foundation 的 HttpClient。它是 Android API 的一部分:

    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("www.somewebpage.com/site-that-can-handle-post");
    
    try {
        MultipartEntity entity = new MultipartEntity();
        entity.addPart("timestamp", new StringBody("1311789946"));
        entity.addPart("image", new FileBody(new File("/foo/bar/video.mpeg")));
        httppost.setEntity(entity);
        HttpResponse response = httpclient.execute(httppost);
    } catch (Exception e) {
        Log.v(MyActivity.TAG, "doh!", e);
    } 
    

    希望对您有所帮助。 :)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 2012-08-06
    • 2023-03-05
    • 1970-01-01
    • 2019-08-20
    相关资源
    最近更新 更多