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