org libreria example commons java apache

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