Apache HttpClient 4.0-beta2 HttpPost, como adicionar um referer?
-
18-09-2019 - |
Pergunta
Eu estou tentando adicionar um referer um posto http no Apache HttpClient (httpclient-4.0-beta2).
Eu encontrei um código de exemplo que faz isso. As obras de código, mas eu estou querendo saber se não há uma maneira mais simples, mais fácil de adicionar o referer do que usar o addRequestInterceptor (sinistramente chamado), que parece ter um (yikes!) Classe interna como parâmetro.
O código em questão começa a seguir com "// adicionar o cabeçalho de referência". Eu sou um novato, e este código está fazendo várias coisas que eu não entendo. Esta é realmente a maneira mais simples de adicionar um referer ao meu post http?
Obrigado por qualquer ponteiros.
// initialize request parameters
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("firstName", "John"));
formparams.add(new BasicNameValuePair("lastName", "Doe"));
// set up httppost
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
HttpPost httppost = new HttpPost(submitUrl);
httppost.setEntity(entity);
// create httpclient
DefaultHttpClient httpclient = new DefaultHttpClient();
// add the referer header, is an inner class used here?
httpclient.addRequestInterceptor(new HttpRequestInterceptor()
{
public void process(final HttpRequest request,
final HttpContext context) throws HttpException, IOException
{
request.addHeader("Referer", referer);
}
});
// execute the request
HttpResponse response = httpclient.execute(httppost);
Solução
Você tem algum motivo para não fazer:
httppost.addHeader("Referer", referer);
? subclasses HttpPost
(indiretamente) AbstractHttpMessage
por isso você deve ser capaz de simplesmente adicionar cabeçalhos dessa forma.