2012-03-14 18 views
5

बिट वास्तव में यहां क्या संभव है इसके बारे में उलझन में है।अपाचे में प्रॉक्सी चेनिंग HTTP

क्या जावा अपाचे HTTP क्लाइंट (4.x) चेन प्रॉक्सी हो सकता है? कैसे कोई सुझाव है?

मुझे documentation suggesting it can मिला है लेकिन स्रोत थोड़ा जटिल है और मुझे कम से कम एक वर्ग (DefaultRequestDirector) मिला है जो अपवाद फेंकता है;

throw new HttpException("Proxy chains are not supported.") 

यह एक प्रॉक्सी

httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); 

लेकिन मेरे लिए इसकी स्पष्ट नहीं का उपयोग कर के साथ एक क्लाइंट कॉन्फ़िगर कैसे करने के लिए सेटअप प्रॉक्सी की एक श्रृंखला के लिए सीधे आगे है। अगर मैं उपरोक्त दस्तावेज पर संकेतों का पालन करता हूं तो मैं निम्नलिखित करता हूं।

httpClient.setRoutePlanner(new HttpRoutePlanner() { 
     @Override 
     public HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context) throws HttpException { 
      return new HttpRoute(target, null, new HttpHost[]{proxy, new HttpHost("localhost", 8081)}, "https".equalsIgnoreCase(target.getSchemeName()), TunnelType.TUNNELLED, LayerType.PLAIN); 
     } 
    }); 

लेकिन इससे उपर्युक्त अपवाद का कारण बनता है;

org.apache.http.client.ClientProtocolException 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:822) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732) 
    at Main.main(Main.java:70) 
Caused by: org.apache.http.HttpException: Proxy chains are not supported. 
    at org.apache.http.impl.client.DefaultRequestDirector.createTunnelToProxy(DefaultRequestDirector.java:957) 
    at org.apache.http.impl.client.DefaultRequestDirector.establishRoute(DefaultRequestDirector.java:764) 
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:579) 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) 
    ... 8 more 
+0

क्या आपने मेलिंग सूची पर पूछा है? http://mail-archives.apache.org/mod_mbox/hc-httpclient-users/ – artbristol

+0

नहीं! धन्यवाद, अच्छा बिंदु: डी – Toby

उत्तर

-1

प्रलेखन आप इसे ऊपर से लिंक में कहते हैं:

उद्धरण 2.7। HttpClient प्रॉक्सी कॉन्फ़िगरेशन भले ही HttpClient जटिल रूटिंग scemes और प्रॉक्सी चेनिंग से अवगत है, यह बॉक्स के बाहर केवल सरल प्रत्यक्ष या एक हॉप प्रॉक्सी कनेक्शन का समर्थन करता है। UNQUOTE

तो उत्तर बॉक्स से बाहर है, यह प्रॉक्सी श्रृंखला को संभाल नहीं सकता है।

+1

यदि आप कोड में टिप्पणियों को देखते हैं, तो एक डेवलपर ने बताया है कि क्या किया जा सकता है। तो मुझे लगता है कि यह उतना सरल नहीं है जितना कि यह इसका समर्थन नहीं करता है और मेरा सवाल यह है कि इसे कैसे मजबूर किया जाए। – Toby