2009-07-19 11 views
14

मैं अपाचे एचटीपी क्लाइंट (httpclient-4.0-beta2) में एक http पोस्ट में एक रेफरर जोड़ने की कोशिश कर रहा हूं।अपाचे एचटीपी क्लाइंट 4.0-बीटा 2 httppost, रेफरर कैसे जोड़ें?

मुझे कुछ नमूना कोड मिला जो यह करता है। कोड काम करता है, लेकिन मैं सोच रहा हूं कि रेफरर को जोड़ने के लिए एक सरल, अधिक सरल तरीका नहीं है (अशुभ रूप से नामित) 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); 

उत्तर

16

कोई कारण नहीं करने के लिए:

httppost.addHeader("Referer", referer); 

? HttpPost सबक्लास (अप्रत्यक्ष रूप से) AbstractHttpMessage ताकि आप उस तरह हेडर जोड़ सकें।

+0

इस सहायता के लिए आपको बहुत बहुत धन्यवाद। मुझे पूरा यकीन है कि मैंने इस तरह कुछ ऐसा करने की कोशिश की, और असफल होने पर, एक और तरीके से खोजना शुरू कर दिया। फिर भी, जब मैं इसे आजमाता हूं तो यह पहली बार काम करता है! :) शायद मैंने एक छोटी सी गलती की जिसने मुझे भटक दिया (मैं स्वीकार नहीं करूंगा कि मैं कितने दिन काम कर रहा हूं ...)। –