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);
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 ...). –