从Android上传到服务器的首选方法是什么?

时间:2009-11-25 04:53:10

标签: java android http

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

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

2 个答案:

答案 0 :(得分:0)

我有一个Android应用程序,我正在针对Campfire聊天服务的“API”进行开发。这里的代码通过多部分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库有更方便的内置多部分支持,但谷歌针对Android执行的最后一次同步不包括这些功能,所以我在这里做手动。

希望有所帮助。

答案 1 :(得分:0)

您可以使用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);
} 

希望有所帮助。 :)