2011-11-09 2 views
4

전화에서 프록시 정보를 읽어야하고 프록시가 내 프록시 인 경우이 스프링을 restTemplate 객체로 설정해야합니다. 행운을 따라 코드를 시도했지만 아무도 내가 뭘 잘못하고 있는지 말해. 어떤 도움프록시가있는 Android 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); 

덕분에

답변

5

내 질문에 대한 답을 발견했습니다 .. 여기에 코드를 게시 할 예정입니다 :.

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

    } 
+0

'defaultHttpClient.getParams을() setParameter를 (ConnRoutePNames.DEFAULT_PROXY를 , 프록시); 고마워, 방금 날 만들었 어! 프록시를 사용하기위한 요구 사항과 HTTP 기본 인증을 필요로하는 서비스에 대한 연결을 결합하려고 시도했는데 마침내이 작업을 수행 할 수있었습니다. – ZeroOne

관련 문제