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);
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top