पर प्रॉक्सी कॉन्फ़िगर करें मैं अपने जर्सी क्लाइंट को प्रॉक्सी सर्वर कॉन्फ़िगर करना चाहता हूं।
मैं प्रॉक्सी को पूरे एप्लिकेशन में कॉन्फ़िगर नहीं करना चाहता हूं (http.proxyHost जैसे JVM तर्कों का उपयोग करके), और Id'e अपाचे क्लाइंट का उपयोग नहीं करते हैं।
मैंने here पढ़ा है कि HttpUrlConnection HttpUrlConnectionFactory के माध्यम से इसे करने का विकल्प है, लेकिन मुझे कोई कोड उदाहरण नहीं मिला।
क्या कोई जानता है कि मैं इसे कैसे कर सकता हूं?
धन्यवाद!जर्सी क्लाइंट
उत्तर
प्रयास करें, मैं यह किया गया:
HttpURLConnectionFactory लागू करें, और विधि 'getHttpURLConnection' ओवरराइड, मेरे कार्यान्वयन (लुका के लिए धन्यवाद) है:
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 3128));
return new HttpURLConnection(url, proxy);
befo जर्सी क्लाइंट को तुरंत चालू करने के लिए, एक नया
URLConnectionClientHandler
बनाएं, और अपने कन्स्ट्रक्टर में अपनाHttpURLConnectionFactory
प्रदान करें। फिर एक नया ग्राहक बनाएं, और क्लाइंट कन्स्ट्रक्टर में अपने क्लाइंट हैंडलर प्रदान करें। मेरे कोड:
URLConnectionClientHandler urlConnectionClientHandler = new URLConnectionClientHandler(new MyHttpURLConnectionFactory());
_client = new Client(urlConnectionClientHandler);
आशा है कि की मदद।
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port));
conn = new URL(url).openConnection(proxy);
के लिए भी काम करना चाहिए, मुझे यकीन नहीं है कि, वर्तमान में मैं 'Client.create (config)' का उपयोग कर रहा हूं। क्लाइंट बनाने के दौरान 'UrlConnection' का उपयोग करने के लिए कोई विकल्प नहीं मिला। – danieln
सबसे पहले मैं इस वर्ग
import com.sun.jersey.client.urlconnection.HttpURLConnectionFactory;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
/**
*
* @author Aimable
*/
public class ConnectionFactory implements HttpURLConnectionFactory {
Proxy proxy;
String proxyHost;
Integer proxyPort;
SSLContext sslContext;
public ConnectionFactory() {
}
public ConnectionFactory(String proxyHost, Integer proxyPort) {
this.proxyHost = proxyHost;
this.proxyPort = proxyPort;
}
private void initializeProxy() {
proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
}
@Override
public HttpURLConnection getHttpURLConnection(URL url) throws IOException {
initializeProxy();
HttpURLConnection con = (HttpURLConnection) url.openConnection(proxy);
if (con instanceof HttpsURLConnection) {
System.out.println("The valus is....");
HttpsURLConnection httpsCon = (HttpsURLConnection) url.openConnection(proxy);
httpsCon.setHostnameVerifier(getHostnameVerifier());
httpsCon.setSSLSocketFactory(getSslContext().getSocketFactory());
return httpsCon;
} else {
return con;
}
}
public SSLContext getSslContext() {
try {
sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, new TrustManager[]{new SecureTrustManager()}, new SecureRandom());
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, ex);
} catch (KeyManagementException ex) {
Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, ex);
}
return sslContext;
}
private HostnameVerifier getHostnameVerifier() {
return new HostnameVerifier() {
@Override
public boolean verify(String hostname,
javax.net.ssl.SSLSession sslSession) {
return true;
}
};
}
}
तो मैं भी अन्य वर्ग SecureTrustManager
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.X509TrustManager;
/**
*
* @author Aimable
*/
public class SecureTrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
public boolean isClientTrusted(X509Certificate[] arg0) {
return true;
}
public boolean isServerTrusted(X509Certificate[] arg0) {
return true;
}
}
बनाएं जिसका नाम बनाया तो निर्माण इस वर्ग मैं इस
URLConnectionClientHandler cc = new URLConnectionClientHandler(new ConnectionFactory(webProxy.getWebserviceProxyHost(), webProxy.getWebserviceProxyPort()));
client = new Client(cc);
client.setConnectTimeout(2000000);
तरह ग्राहक फोन कर रहा हूँ के बाद
वेबप्रोक्सी.getWeserviceHost को अपने proxyHost और webProxy.getWebservi द्वारा बदलें प्रॉक्सी पोर्ट द्वारा ceProxyPort()।
यह मेरे लिए काम करता है और यह आपके लिए भी काम करना चाहिए। ध्यान दें कि मैं जर्सी 1.8 का उपयोग कर रहा हूं लेकिन इसे जर्सी 2
धन्यवाद, यह मेरे लिए काम करता है। – whoami
- 1. जर्सी क्लाइंट
- 2. जर्सी क्लाइंट
- 3. जर्सी क्लाइंट अपलोड प्रगति
- 4. जर्सी क्लाइंट + सेट प्रॉक्सी
- 5. जर्सी क्लाइंट HTTPS प्रदर्शन समस्या
- 6. एंड्रॉइड पर जर्सी क्लाइंट - NullPointerException
- 7. जर्सी क्लाइंट प्रतिक्रिया स्थिति 204
- 8. जर्सी
- 9. गिइस + जर्सी: जर्सी सर्वलेट
- 10. जर्सी
- 11. जर्सी
- 12. जर्सी
- 13. जर्सी
- 14. जर्सी
- 15. जर्सी
- 16. जर्सी
- 17. जर्सी
- 18. जर्सी क्लाइंट सीरिएलाइज़र के रूप में जैक्सन का उपयोग
- 19. जीजेआईपी http-प्रतिक्रिया (जर्सी क्लाइंट एपीआई, जावा का उपयोग करके)
- 20. जर्सी क्लाइंट: सशर्त जीईटी के लिए कैश-मैनेजर?
- 21. जेएक्स-आरएस जर्सी क्लाइंट पीओजेओ मैपिंग और जैक्सन
- 22. जर्सी डब्ल्यूएस टाइमआउट
- 23. जर्सी ग्राहक निर्भरता
- 24. रीस्टेसी या जर्सी?
- 25. जर्सी ग्राहक सामग्री-लंबाई
- 26. कैसे जर्सी
- 27. जर्सी 2.0
- 28. जावा जर्सी
- 29. जर्सी संसाधन
- 30. जर्सी: ContainerRequestFilter
ध्यान दें कि यह केवल जावा 6 के साथ काम करता है - प्रॉक्सी के साथ HttpURLConnection कन्स्ट्रक्टर जावा 5 में उपलब्ध नहीं है। –