2015-10-09 88 views

回答

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 codeMultipartRequest(文件上傳)使用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(); 
相關問題