2009-07-19 10 views
14

私はApache HttpClient(httpclient-4.0-beta2)のhttp投稿にrefererを追加しようとしています。Apache HttpClient 4.0-beta2 httppost、refererを追加するには?

これを行うサンプルコードが見つかりました。コードは機能しますが、パラメータとして内部クラス(yikes!)を取るように見える(奇妙な名前の)addRequestInterceptorを使用するよりも簡単で、より簡単な方法でrefererを追加することはできません。

以下のコードは、「//リファラーヘッダーを追加する」から始まります。私は初心者です、そして、このコードは私が理解していないいくつかのことをやっています。これは実際に私のhttpポストにrefererを追加する最も簡単な方法ですか?

ありがとうございます。

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

答えて

16

行うにはない何らかの理由:

httppost.addHeader("Referer", referer); 

HttpPostサブクラス(間接的に)AbstractHttpMessageです。そのようにヘッダーを追加するだけでよいはずです。

+0

この度はありがとうございます。私はこのようなものを最初に試したことは確かですが、失敗したら別の方法を探し始めました。しかし、私は今それを試してみると初めて動作します! :)おそらく私が作った小さな間違いは私を迷わせてしまった(私は何日も私がそれに取り組んできたことを認めないだろう...)。 –

関連する問題