El tipo MultipartEntity está en desuso

La documentación dice que la clase org.apache.http.entity.mime.MultipartEntity está en desuso. ¿Alguien podría sugerirme una alternativa?

Estoy usando esto en mi código de esta manera:

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

Si lee los documentos con cuidado, notará que debe usar MultipartEntityBuilder como alternativa.

Por ejemplo:

 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 

Tenga en cuenta que hay varios constructores para la clase FileBody , mediante el cual puede proporcionar mimeType , tipo de contenido , etc.

Una vez que haya terminado de pasar instrucciones de comstackción al constructor, puede obtener HttpEntity incorporado invocando el método MultipartEntityBuilder#build() :

 HttpEntity entity = builder.build(); 

Todavía veo tantos tutoriales que siguen utilizando las API en desuso, que es lo que me llevó a esta publicación. Para el beneficio de los visitantes futuros (hasta que esta API se desaproveche;))

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