Ответ 1
Любые причины не делать:
httppost.addHeader("Referer", referer);
? HttpPost
подклассы (косвенно) AbstractHttpMessage
, чтобы вы могли просто добавлять заголовки таким образом.
Я пытаюсь добавить реферера на http-сообщение в Apache HttpClient (httpclient-4.0-beta2).
Я нашел пример кода, который делает это. Код работает, но мне интересно, нет ли более простого и более простого способа добавления референта, чем с помощью (зловеще названного) addRequestInterceptor, который, как представляется, принимает в качестве параметра внутренний класс (yikes!).
Этот код начинается ниже: "//добавить заголовок реферирования". Я новичок, и этот код делает несколько вещей, которые я не понимаю. Это действительно самый простой способ добавить реферера в мой пост http?
Спасибо за любые указатели.
// 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);
Любые причины не делать:
httppost.addHeader("Referer", referer);
? HttpPost
подклассы (косвенно) AbstractHttpMessage
, чтобы вы могли просто добавлять заголовки таким образом.