"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo realizar solicitudes POST de datos de formulario/multiparte en Java utilizando HttpClient?

¿Cómo realizar solicitudes POST de datos de formulario/multiparte en Java utilizando HttpClient?

Publicado el 2024-12-23
Navegar:708

How to Make Multipart/Form-Data POST Requests in Java Using HttpClient?

Cómo realizar una solicitud de publicación de datos de formulario de varias partes con Java

La llegada de Apache Commons HttpClient versión 4.0 eliminó la capacidad de realizar solicitudes POST de datos de formulario/de varias partes que eran posibles en la versión 3.x. El equipo de HttpClient explicó que la funcionalidad multiparte quedaba fuera del alcance de sus actividades principales y recomendó buscar bibliotecas alternativas.

Encontrar una biblioteca Java adecuada

Surge la pregunta de cuál Las bibliotecas de Java ofrecen capacidades de solicitud POST de datos de formulario/multiparte. Una de esas bibliotecas es HttpClient 4.x, que proporciona una solución integral para realizar estas solicitudes.

Código HttpClient 4.3 actualizado

Con las versiones 4.3 y superiores de HttpClient, la API se ha actualizado y algunas clases han quedado obsoletas. El siguiente fragmento de código ilustra el método revisado para realizar publicaciones de archivos de varias partes:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("...");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN);

// This attaches the file to the POST:
File f = new File("[/path/to/upload]");
builder.addBinaryBody(
    "file",
    new FileInputStream(f),
    ContentType.APPLICATION_OCTET_STREAM,
    f.getName()
);

HttpEntity multipart = builder.build();
uploadFile.setEntity(multipart);
CloseableHttpResponse response = httpClient.execute(uploadFile);
HttpEntity responseEntity = response.getEntity();

Código HttpClient 4.0 obsoleto (como referencia)

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);

FileBody bin = new FileBody(new File(fileName));
StringBody comment = new StringBody("Filename: "   fileName);

MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("bin", bin);
reqEntity.addPart("comment", comment);
httppost.setEntity(reqEntity);

HttpResponse response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();

Con estas bibliotecas, los desarrolladores pueden crear sin problemas clientes HTTP capaces de realizar solicitudes POST de datos de formularios/multipartes, lo que les permite interactuar con servicios web y API que requieren este tipo de formato de solicitud.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3