由于API level 22 android弃用了HTTP Client和Multi part Builder。我想通过使用MultipartEntityBuilder和HttpURLConnection在一个请求中发送服务器上的一些JSON对象和图像。如何使用MultipartEntityBuilder和HttpURLConnection在android中发送图像和JSON对象数据?
0
A
回答
0
与我的评论一起,由于Apache的libabry从API22中被弃用,建议您使用HttpUrlConnection,OkHttp ...来代替。
你应该多看Apache HTTP Client Removal
与OkHttp的样品多要求,请参阅its GitHub documentation here
希望这有助于!
1
的Apache的HttpClient 4.3端口,用于Android的初衷是通过提供与谷歌的Android 兼容官方版本来补救 情况。
鉴于Android API 23谷歌的HttpClient fork已被 删除,该项目已停产。
谁想要继续使用Apache的HttpClient Android上 则宜考虑
的Apache的HttpClient 4.3端口,用于Android的指定Android API 22岁以上
dependencies {
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}
的Apache HttpClient的包时,那些用户Android定位Android API 23和更新版本时由Marek Sebera维护的Android
dependencies {
compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1'
}
从Apache的官方网站采取:Apache HttpClient for Android
注:您不必使用useLibrary 'org.apache.http.legacy'
声明,介绍了一种未从Android的迁移项目提供的HttpClient类。进一步explanation。
我已经实施了sample code做MultipartRequest(文件上传)使用Volley。
1
我已通过使用下面的代码使用Multipart Entity Builder和HttpOpenUrl连接成功发送图像文件和JSON数据。
String boundary = "*************";
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
FileBody fileBody = new FileBody(new File(image));//pass your image path to make a file
builder.addPart("profile_image", fileBody);
builder.addPart("data", new StringBody(jsonObject.toString(), ContentType.TEXT_PLAIN));//pass our jsonObject here
HttpEntity entity = builder.build();
URL url = null;
try {
url = new URL("write your url here");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(10000);
urlConnection.setReadTimeout(10000);
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
urlConnection.addRequestProperty("Content-length", entity.getContentLength() + "");
urlConnection.addRequestProperty(entity.getContentType().getName(), entity.getContentType().getValue());
OutputStream os = urlConnection.getOutputStream();
entity.writeTo(urlConnection.getOutputStream());
os.close();
urlConnection.connect();
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String s = "";
StringBuilder stringBuilder = new StringBuilder("");
while ((s = bufferedReader.readLine()) != null) {
stringBuilder.append(s);
}
serverResponseMessage = stringBuilder.toString();
相关问题
- 1. 发送图像与MultipartEntityBuilder和HttpURLConnection
- 2. Android:上传图片和JSON使用MultiPartEntityBuilder
- 3. 如何发送一个JSON对象与HttpURLConnection的Android中
- 4. Android httpUrlConnection发送和接收数据
- 5. 使用MultipartEntityBuilder发送密钥和文件
- 6. Android,php和JSON:使用json发送图像到Android
- 7. Android如何使用意图发送文本和图像或任何对象?
- 8. 如何利用HttpURLConnection类发送POST请求使用JSON数据
- 9. jquery在ajax调用中发送表单数据和json对象
- 10. 如何使用JSON对象在Android中显示Android数据库中的图像
- 11. 发送json对象数据到android
- 12. cURL和HttpURLConnection - 发布JSON数据
- 13. 如何仅使用json和php在身体中发送数据?
- 14. 使用HTTPUrlConnection在URL中发送值Android
- 15. 如何阅读json数据使用php时,通过android发送json对象?
- 16. 在单个Node.js + Express响应中发送图像和JSON数据
- 17. 如何在HTTPURLConnection中传递JSON对象
- 18. Android的JSON对象和JSON数组发送到httppost
- 19. 从Android的发送JSON对象HttpURLConnection的POST请求
- 20. Javascript/Ajax/Json:发送对象和数组
- 21. POST请求发送json数据java HttpUrlConnection
- 22. 在JSON对象保存数据和在线发送
- 23. 使用POST使用HttpURLConnection发送json数据
- 24. 如何使用Json对象发送resposne
- 25. CodeIgniter和JSON对象:如何将数据推送到数据库?
- 26. 使用JSON和MultipartEntity从Android发送图像到WCF
- 27. 发送JSON对象和文件在MVC
- 28. 如何使用HTML表单数据发送一个JSON对象
- 29. 在android中发送json请求中的图像字节数据?
- 30. 在android中发送json对象到webservice
MultipartEntityBuilder在API23中也被弃用:) – BNK
比应该使用什么? @BNK –