Android多部分上传

Android多部分上传,第1张

概述作为我的 Android应用程序的一部分,我想上传位图以进行远程存储.我有简单的HTTP GET和POST通信工作完美,但是关于如何做多部分POST的文档似乎与独角兽一样罕见. 此外,我想直接从内存传输图像,而不是使用文件.在下面的示例代码中,我从一个文件中获取一个字节数组,以便稍后使用HttpClient和MultipartEntity. File input = new File("climb 作为我的 Android应用程序的一部分,我想上传位图以进行远程存储.我有简单的http GET和POST通信工作完美,但是关于如何做多部分POST的文档似乎与独角兽一样罕见.

此外,我想直接从内存传输图像,而不是使用文件.在下面的示例代码中,我从一个文件中获取一个字节数组,以便稍后使用httpClIEnt和multipartentity.

file input = new file("climb.jpg");    byte[] data = new byte[(int)input.length()];    fileinputStream fis = new fileinputStream(input);    fis.read(data);    ByteArrayPartSource baps = new ByteArrayPartSource(input.getname(),data);

这一切似乎对我来说很清楚,除了我不能为我的生活找到在哪里得到这个ByteArrayPartSource.我已经链接到httpclIEnt和httpmime JAR文件,但没有骰子.我听说httpClIEnt 3.x和4.x之间的包结构发生了很大变化.

有人在AndroID中使用这个ByteArrayPartSource,他们是如何导入的?

在文档挖掘和冲刷互联网后,我想出了符合我需求的东西.要制作一个多部分请求,如表单POST,以下代码为我做了一个窍门:

file input = new file("climb.jpg");    DefaulthttpClIEnt clIEnt = new DefaulthttpClIEnt();    httpPost post = new httpPost("http://localhost:3000/routes");    multipartentity multi = new multipartentity(httpMultipartMode.broWSER_COMPATIBLE);    String line;    multi.addPart("name",new StringBody("test"));    multi.addPart("grade",new StringBody("test"));    multi.addPart("quality",new StringBody("test"));    multi.addPart("latitude",new StringBody("40.74"));    multi.addPart("longitude",new StringBody("40.74"));    multi.addPart("photo",new fileBody(input));    post.setEntity(multi);    httpResponse resp = clIEnt.execute(post);

httpMultipartMode.broWSER_COMPATIBLE位非常重要.感谢Radomir’s blog在这一个.

解决方法 尝试这个:
httpClIEnt httpClIEnt = new DefaulthttpClIEnt() ; httpPost httpPost = new httpPost("http://example.com"); multipartentity entity = new multipartentity();      entity.addPart("file",new fileBody(file)); httpPost.setEntity(entity ); httpResponse response = null; try {     response = httpClIEnt.execute(httpPost); } catch (ClIEntProtocolException e) {     Log.e("ClIEntProtocolException : "+e,e.getMessage());          } catch (IOException e) {     Log.e("IOException : "+e,e.getMessage()); }
总结

以上是内存溢出为你收集整理的Android多部分上传全部内容,希望文章能够帮你解决Android多部分上传所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1131886.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存