我需要从电话中读取代理信息,如果电话在代理下,我需要在我的 spring restTemplate 对象上设置此代理。我尝试了以下代码但没有任何运气,谁能告诉我我是什么做错了。
String proxyHost = android.net.Proxy.getHost(activity
.getApplicationContext());
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, 8080));
requestFactory.setProxy(proxy);
RestTemplate rest = new RestTemplate(requestFactory);
感谢您的帮助
最佳答案
我已经找到了问题的答案.. 将在此处发布代码:
if (proxyHost != null && proxyPort != null) {
rest = new RestTemplate();
HttpComponentsClientHttpRequestFactory factory = ((HttpComponentsClientHttpRequestFactory) rest
.getRequestFactory());
DefaultHttpClient defaultHttpClient = (DefaultHttpClient) factory
.getHttpClient();
HttpHost proxy = new HttpHost(proxyHost, proxyPort);
defaultHttpClient.getParams().setParameter(
ConnRoutePNames.DEFAULT_PROXY, proxy);
} else {
rest = new RestTemplate();
HttpComponentsClientHttpRequestFactory factory = ((HttpComponentsClientHttpRequestFactory) rest
.getRequestFactory());
DefaultHttpClient defaultHttpClient = (DefaultHttpClient) factory
.getHttpClient();
}
关于带代理的 Android Spring RestTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8071641/