Skip to content


Criando requisições HTTP através de proxies com o Commons HttpClient

Hoje eu tive que criar algumas requisições HTTP através de um proxy, numa integração que estou implementando. Minha aplicação precisa enviar solicitações HTTP a um servidor remoto, passando por um proxy, e eu uso o Commons HttpClient para montar estas requisições.

Como achei a documentação disso bem fraquinha no site do projeto, resolvi postar aqui um exemplo de código para facilitar quem possa precisar (e a mim mesmo no futuro). Este exemplo é um método de teste junit bem simples que monta uma requisição RESTful de cadastro de um novo usuário, especificando as configurações do proxy na API. Utilizei o XStream para fazer as manipulações XML. Segue o exemplo:

public void testCriacao() throws HttpException, IOException{
Usuario novoUsuario = new Usuario();
novoUsuario.setLogin("fulano");
novoUsuario.setSenha("123456");
novoUsuario.setNome("Fulano");
novoUsuario.setSobrenome("da Silva");
novoUsuario.setStatusConta(1);
novoUsuario.setTamanhoMailBox(6144);


HttpClient client = new HttpClient();
//servidor remoto que iremos acessar
HostConfiguration hostConfiguration = new HostConfiguration();
hostConfiguration.setHost("www.domain.com", 8080);
// proxy pelo qual precisamos passar
ProxyHost proxy = new ProxyHost("10.10.10.10", 9090);
hostConfiguration.setProxyHost(proxy);
client.setHostConfiguration(hostConfiguration);


PostMethod method = new PostMethod("http://www.domain.com:8080/MailIntegration/usuario/");
XStream xstream = new XStream();
xstream.alias("usuario", Usuario.class);
String usuarioXml = xstream.toXML(novoUsuario);
StringRequestEntity requestEntity = new StringRequestEntity(usuarioXml, "text/xml", "UTF-8");
method.setRequestEntity(requestEntity);
int statusCode = client.executeMethod(method);
assertEquals(201, statusCode);
Usuario usuarioCadastrado = (Usuario)xstream.fromXML(method.getResponseBodyAsStream());

Posted in java, posts em português.

Tagged with , , , , , .


2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Gustavo says

    setando as propriedades de sistema no start da jvm -Dhttps.proxyHost=proxy01.com -Dhttps.proxyPort=3128 -Dhttp.proxyHost=proxy01.com -Dhttp.proxyPort=3128 nao resolveria? participei de um projeto que as requisicoes http precisavam passar por um proxy e configurei esses parametros no startup da vm e funcionou perfeitamente… e o desenvolvedor nao precisou alterar o código dele. :)

  2. blpsilva says

    Oi Gustavo, sua abordagem certamente é válida também. A escolha entre as 2 opções dependeria da situação.

    Usando parâmetros da JVM, vc indica um proxy para uso pela aplicação como um todo.

    Da forma que eu falei, você consegue ter proxies diferentes sendo usados na sua aplicação. Vamos supôr que a aplicação precisa acessar 2 web services de empresas distintas. Vamos pensar por exemplo um dos web services sendo de uma aplicação interna da mesma empresa (ex: Sistema de Billing) e o outro web service sendo de uma empresa fornecedora de e-mail. Com a JVM você ficaria limitado a um proxy. Além disso, essa forma através da API facilita que o host e porta do proxy sejam configuráveis dinamicamente, caso necessário.

    Como na maioria dos casos existirá apenas um proxy e este proxy mudará raramente, ambas as abordagens atenderiam adequadamente. Em casos em que os requisitos sejam um pouco mais sofisticados, vale a pena avaliar qual das 2 é mais adequada. Just my 2 cents ;)



Some HTML is OK

or, reply to this post via trackback.



  • vitamin c online
  • pharmacies open 24 hours
  • products diet
  • new antibiotic drug
  • blood pressure information
  • arm muscle pain
  • maxalt dosage
  • natural acne products
  • viagra buy viagra
  • vitamin b-12
  • osteoporosis medicines
  • birth control options
  • viagra cialis levitra
  • calcium carbonate powder
  • care of cat
  • buy cheap cialis without a prescription
  • gout medicines
  • cytotec tablets
  • herbal breast enhancers
  • malaria africa drug
  • viagra cheap buy online
  • herpes drug
  • no prescription propecia
  • buy now viagra
  • simple remedy obesity
  • chronic snoring
  • generic compazine
  • neck pain relief
  • cheap generic medication wal-mart
  • body detox
  • edema treatment
  • knee arthritis
  • how viagra woirks
  • natural arthritis cure
  • new cholesterol guidelines
  • male enhancers
  • overdose klonopin
  • claritin pill
  • how to treat your pets
  • buy online viagra viagra
  • dog ear problem
  • taking zoloft
  • rhinocort spray
  • meds to stop smoking
  • natural muscle and joint health
  • help for psoriasis
  • neck pain relief
  • viagra fedex
  • ultram ordering
  • viagra young
  • side effects of antibiotics
  • cialis free samples
  • breast enhancements pills
  • menopause hair loss
  • cholesterol cures
  • chronic pain management
  • chronic pain
  • dog skin care
  • nolvadex buy
  • drugs fda
  • erectile dysfunction cure
  • order topamax online
  • citalopram withdrawal
  • back pain pills
  • skin disorders in dogs
  • current flu virus
  • free topamax
  • steps to help prevent flu
  • generic drugs
  • blood pressure drug names
  • buy cheap cialis
  • discount online pharmacy
  • male health problems
  • ear infections remedy
  • control premature ejaculation
  • discount pet products
  • scabies treatments
  • vascular edema
  • buy 10 mg cialis
  • pharmacy for pain medications
  • treatment of the flu
  • zantac dosage
  • boost immune system against virus
  • medications for nausea
  • women insomnia
  • buy medication on line
  • nausea vomiting
  • herpes medications to buy
  • high systolic blood pressure
  • treatment of insomnia
  • ramipril capsules
  • asthma and allergies
  • levitra best price
  • fluconazole
  • how to relieve ear pain
  • side effects soma
  • lasix on line without a prescription
  • canadian carisoprodol
  • getting off pain pills
  • ativan canada
  • how to get prescribed pain killers
  • side effects of amoxicillin
  • anti smoking drugs
  • about sleep aid
  • sleeping problems uk
  • tamiflu orders
  • cipro 250
  • latest cure for aids
  • order finasteride
  • weight loss sites
  • cat's health
  • order folic acid online
  • synthroid cost
  • levitra doses
  • top acne products
  • pet medicine
  • drugs that treat high blood pressure
  • celebrex buy online
  • diet medication
  • cholesterol drug
  • antibiotics dental
  • stress relief pills
  • coumadin medication
  • propecia without prescription
  • where can i order phentermine online
  • dark spot on skin
  • phentermine online
  • diabetes meds
  • pill zocor
  • natural lower blood pressure
  • mail order pain medications
  • xanax by mail
  • generic cialis
  • healthy weight loss supplements
  • discount drug prescription
  • soma price
  • buspirone dosage
  • rheumatoid arthritis and pregnancy
  • helping high blood pressure
  • cheap online pharmacy tramadol
  • cheap birth control online
  • herbal diet pills
  • viagra price online
  • viagra online no prescription
  • alzheimers drugs
  • male health drugs
  • canada cialis online
  • cholesterol meds
  • antidepressant medicine
  • prostate cancer treatment canada
  • symptoms of heart failure
  • buy xanax online buy
  • bayer's impotence
  • buying cialis online
  • nexium health
  • buy cod soma
  • international online pharmacies
  • protonix generic
  • cholesterol pills
  • treat arthritis
  • zyban canada
  • dog health help
  • healthy dog puppy food
  • drugs for type 2 diabetes
  • buy topamax
  • free treatment for pets
  • cheap soft viagra
  • how to increase breast size tips
  • pregnancy high blood pressure
  • paxil for anxiety
  • drugs high blood pressure
  • health problems in dogs
  • healthy pet treat
  • levitra web sites
  • viagra superactive
  • calcium osteoporosis
  • big muscles
  • meclizine medication
  • cure for irritable bowel syndrome
  • i want to give up smoking
  • prescription weight loss diet pill
  • treatment of congestive heart failure
  • buy cialis delived next day
  • dosage for amoxicillin
  • muscle building tips
  • carisoprodol
  • viagra free sample
  • prescribed diabetes medications
  • high calcium in the blood
  • skin disorders site australia
  • drug sarafem
  • on-line pharmacies
  • arthritis of the back
  • women insomnia
  • generic for ativan
  • high cholesterol
  • medical weight loss
  • buy body building prescription
  • pet drug store
  • way to improve skin