2015-10-09 35 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(); 
相关问题