Home > Java > javaTutorial > How to Create Multipart/Form-Data POST Requests in Java After Apache HttpClient 3.x's Removal of Multipart Support?

How to Create Multipart/Form-Data POST Requests in Java After Apache HttpClient 3.x's Removal of Multipart Support?

DDD
Release: 2024-12-30 19:16:10
Original
642 people have browsed it

How to Create Multipart/Form-Data POST Requests in Java After Apache HttpClient 3.x's Removal of Multipart Support?

multipart/form-data POST Request in Java

In Java, creating multipart/form-data POST requests was once feasible using Apache Commons HttpClient version 3.x. However, this capability was discontinued in version 4.0.

The HttpClient developers justified this removal by stating that multipart handling was outside the scope of the library's core HTTP functionality. They suggested looking for multipart code maintained by other projects but acknowledged being unaware of any such projects.

Workarounds using HttpClient 4.x

Despite the removal of dedicated multipart support, there are workarounds to create multipart requests using HttpClient 4.x. Here's an example:

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

// Attach 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();
Copy after login

Note that as of HttpClient 4.3, some classes have been deprecated. Refer to the official documentation for updated API usage.

The above is the detailed content of How to Create Multipart/Form-Data POST Requests in Java After Apache HttpClient 3.x's Removal of Multipart Support?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template