如何在Android中使用HTTP PUT上传文件?

5
我有一个REST Web服务和Android应用程序。现在我想使用Android应用程序请求Http Put来调用Web服务。在我的REST Web服务中,如果用户想要执行Http Put操作,他可以在终端中像这样请求:

curl -H "Content-Type:application/vnd.org.snia.cdmi.dataobject" -v -T /home/student1/a.jpg http://localhost:8080/user1/folder/a.jpg

我的问题是如何在Android应用程序中设置“-T /home/student1/a.jpg”以使用HttpPut?

1个回答

8

以下是一些您可以使用的代码片段:

File f = new File(...);
...
...
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPut httpPut = new HttpPut("http://mydomain.com/some/action");

MultipartEntity entity = new MultipartEntity();
entity.addPart("myFile", new FileBody(f));

httpPut.setEntity(entity);
HttpResponse response  = httpclient.execute(httpPut);

顺便问一下,在 Android UI 中如何获取 File f = new File(file...) 中的文件路径? - sudo
什么是Android UI?你的文件在哪里? - aromero
将本地驱动器中的文件附加到Web服务,然后上传到服务器系统。 - sudo
如果有人能帮忙,我正在解决同样的问题,并且已经做得很好了,但是当请求被发出时,它会抛出异常,说“sendto failed: ECONNRESET(连接被对等方重置)”,请帮忙!! - Kumar Aditya
需要外部的Apache JAR文件。没有依赖外部JAR文件的解决方案会更好。 - Lassi Kinnunen
HttpPut已被弃用。有什么想法吗? - Aviv Ben Shabat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接