2009-11-25 61 views
1

我一直在试图找到一种方法将视频从Android设备上传到API,但我还没有找到一个好方法来做到这一点。看来我在网上找到的大部分信息都是过时的(大部分是从去年开始的)。他们大多数使用这样的方法:http://getablogger.blogspot.com/2008/01/android-how-to-post-file-to-php-server.html从Android上传到服务器的首选方法是什么?

什么是最简单/首选的方式上传东西到一个API与多部分POST?

+0

如果我的答案是有帮助的,我会很感激,如果你接受它。否则,请让我知道我可以得到更多的帮助。 – Konklone 2010-01-04 18:10:15

回答

0

我有一个Android应用程序,我正在开发针对篝火聊天服务的“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执行的最后一个同步并没有包含这些功能,所以我在这里手动做。

希望这有些帮助。

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); 
} 

希望有所帮助。 :)

相关问题