MultipartEntitytypes已被弃用

该文档说, org.apache.http.entity.mime.MultipartEntity类已被弃用。 有谁可以请build议我一个替代?

我使用这个在我的代码是这样的:

 entity.addPart("params", new StringBody("{\"auth\":{\"key\":\"" + authKey + "\"},\"template_id\":\"" + templateId + "\"}")); entity.addPart("my_file", new FileBody(image)); httppost.setEntity(entity); 

如果仔细阅读文档,您会发现应该使用MultipartEntityBuilder作为替代scheme。

例如:

 MultipartEntityBuilder builder = MultipartEntityBuilder.create(); /* example for setting a HttpMultipartMode */ builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); /* example for adding an image part */ FileBody fileBody = new FileBody(new File(image)); //image should be a String builder.addPart("my_file", fileBody); //and so on 

请注意, FileBody类有几个构造函数,可以通过它们提供mimeType内容types等。

在完成向构build器传递构build指令后,可以通过调用MultipartEntityBuilder#build()方法来获得构build的HttpEntity

 HttpEntity entity = builder.build(); 

我仍然看到很多教程仍然使用不赞成使用的API,这是我引导到这篇文章。 为了将来的访问者的利益(直到这个API被弃用;))

 File image = "...."; FileBody fileBody = new FileBody(image); MultipartEntityBuilder builder = MultipartEntityBuilder.create() .setMode(HttpMultipartMode.BROWSER_COMPATIBLE) .addTextBody("params", "{....}") .addPart("my_file", fileBody); HttpEntity multiPartEntity = builder.build(); String url = "...."; HttpPost httpPost = new HttpPost(url); httpPost.setEntity(multiPartEntity); ...