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); ...