Artigo Java Magazine 29 - Clientes Web com HttpClient

Nesta edição veremos como utilizar o método POST para enviar formulários e arquivos, além de outros recursos fundamentais, como o gerenciamento de cookies e a manipulação de cabeçalhos.

Esse artigo faz parte da revista Java Magazine edição 29. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.

Clientes Web com HttpClient

Parte 2: POST, Arquivos, Cabeçalhos e Cookies

Concluindo a série sobre o HttpClient, conheça com muitos exemplos, os recursos para submeter formulários, enviar arquivos e gerenciar cookies e cabeçalhos

Na primeira parte desta série apresentamos os conceitos básicos da API HttpClient e o uso do método HTTP GET. Nesta edição veremos como utilizar o método POST para enviar formulários e arquivos, além de outros recursos fundamentais, como o gerenciamento de cookies e a manipulação de cabeçalhos.

GET versus POST

Quando usamos o método GET do HTTP, as informações são enviadas diretamente na URL, sendo codificados e incluídos ao final da URL, na parte chamada query-string. No entanto, há muitos casos em que requisições GET não são adequadas. O tamanho da query-string é limitado quanto ao total de caracteres, e só é possível enviar informações textuais. Outra questão é relacionada à segurança. Passar via GET dados sigilosos como senhas ou números de cartão de crédito expõe esses dados na URL. E mesmo que a URL seja ocultada, por exemplo com o uso de frames escondidos, os dados geralmente ficam registrados no log de visitas do servidor web ou de um proxy/firewall, deixando as informações acessíveis para qualquer um que tenha acesso a esses logs.

Para reduzir a exposição dos dados, e para enviar dados binários ou textos longos, será necessário usar o método POST do HTTP.

Envio básico via POST

Com o método POST é possível enviar um tamanho praticamente ilimitado de informações ao servidor. POST é o método HTTP mais usado na submissão de formulários HTML.

Para que POST realmente seja usado ao submeter o formulário HTML, deve ser especificado method=”post” no tag

. Caso contrário, será usado GET para submeter os dados (que são codificados e anexados à URL pelo próprio navegador web).

Através do método POST, também é possível enviar arquivos binários ao servidor. Com o HttpClient, usamos a classe PostMethod, que fornece funcionalidades variadas para a manipulação de parâmetros HTTP no corpo de uma requisição.

Três métodos permitem adicionar parâmetros: as sobrecargas addParameter(NameValuePair par) e addParameter(String nomeParam, String valorParam) definem um parâmetro por vez. Já addParameters(NameValuePair[] params) recebe um array de pares nome-valor. Para alterar o valor de um parâmetro já adicionado, usa-se setParameter(NameValuePair par). Caso o parâmetro, (identificado pelo nome) não for encontrado ele é adicionado; se for, ele é substituído com o valor fornecido. Por fim, o método " [...] continue lendo...

Artigos relacionados