由於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 –