example - libreria org.apache java
El tipo MultipartEntity está en desuso (2)
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 compilación al constructor, puede obtener HttpEntity
incorporado invocando el método MultipartEntityBuilder :
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);
...