2009-07-19 11 views
14

Próbuję dodać referer do posta http w Apache HttpClient (httpclient-4.0-beta2).Apache HttpClient 4.0-beta2 httppost, jak dodać referer?

Znalazłem przykładowy kod, który to robi. Kod działa, ale zastanawiam się, czy nie istnieje prostszy, prostszy sposób dodania odnośnika niż użycie (złowrogo nazwanego) obiektu addRequestInterceptor, który wydaje się przyjmować klasę wewnętrzną (yikes!) Jako parametr.

Ten kod zaczyna się poniżej od "// dodaj nagłówek referera". Jestem nowicjuszem i ten kod wykonuje kilka rzeczy, których nie rozumiem. Czy to naprawdę najprostszy sposób dodania odnośnika do mojego posta http?

Dzięki za wszelkie wskazówki.

// 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); 

Odpowiedz

16

żadnego powodu, aby nie zrobić:

httppost.addHeader("Referer", referer); 

? HttpPost podklasy (pośrednio) AbstractHttpMessage, więc powinieneś być w stanie dodać nagłówki w ten sposób.

+0

Dziękuję bardzo za pomoc. Jestem pewien, że najpierw spróbowałem czegoś podobnego, a gdy się to nie udawało, szukałem innej drogi. Jednak kiedy spróbuję tego teraz działa pierwszy raz! :) Prawdopodobnie mały błąd, który popełniłem, doprowadził mnie na manowce (nie przyznam się, ile dni nad tym pracowałem ...). –

Powiązane problemy