"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como fazer solicitações POST multipart/Form-Data em Java usando HttpClient?

Como fazer solicitações POST multipart/Form-Data em Java usando HttpClient?

Publicado em 23/12/2024
Navegar:841

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

Fazendo uma solicitação de postagem de dados de formulário de várias partes com Java

O advento do Apache Commons HttpClient versão 4.0 eliminou a capacidade de executar solicitações POST de dados de formulário/multipartes que eram possíveis na versão 3.x. A equipe do HttpClient explicou que a funcionalidade multipartes estava fora do escopo de suas atividades principais e recomendou a busca de bibliotecas alternativas.

Encontrando uma biblioteca Java adequada

Surge a questão de qual As bibliotecas Java oferecem recursos de solicitação POST multipart/form-data. Uma dessas bibliotecas é HttpClient 4.x, que fornece uma solução abrangente para fazer essas solicitações.

Código HttpClient 4.3 atualizado

Com HttpClient versões 4.3 e superiores, a API foi atualizado e algumas classes foram descontinuadas. O trecho de código a seguir ilustra o método revisado para criar postagens de arquivos multipartes:

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 (para referência)

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

Com essas bibliotecas, os desenvolvedores podem criar facilmente clientes HTTP capazes de fazer solicitações POST de dados de formulário/multipartes, permitindo-lhes interagir com serviços da Web e APIs que exigem esse tipo de formato de solicitação.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3