원격 서버에 http 요청을 보내는 앱이 있습니다. 이건 정말 잘 어울리는모든 네트워크 트래픽을 프록시를 통해 전달하는 방법은 무엇입니까?
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("myURL");
try {
ArrayList<BasicNameValuePair> postVariables = new ArrayList<BasicNameValuePair>(2);
postVariables.add(new BasicNameValuePair("key","value"));
httpPost.setEntity(new UrlEncodedFormEntity(postVariables));
HttpResponse response = httpClient.execute(httpPost);
String responseString = EntityUtils.toString(response.getEntity());
if (responseString.contains("\"success\":true")){
//this means the request succeeded
} else {
//failed
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
, 그러나 우리의 고객 중 하나는 특정 프록시 서버를 통해 이동 요청을 필요로하는 APN을 설정 한 : 나는 다음과 같은 코드를 사용하여이 작업을 수행. 나는이 작품 요청에 다음을 추가하면, 요청이 서버에 프록시를 통해 라우팅됩니다 :
HttpHost httpHost = new HttpHost("proxyURL",8080);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, httpHost);
지금까지, 그러나, 나뿐만 아니라 일부 HTTP 요청을 만드는 라이브러리를 너무 잘 사용합니다. 라이브러리의 코드는 나에게 접근 할 수 없으므로이 두 행을 코드에 추가 할 수 없습니다. 그 도서관의 제작자에게 연락을하고, 모든 요청이 자동으로 프록시를 통과하도록 안드로이드 환경을 설정하는 것이 가능해야한다고 말했습니다. 그런 것이 있습니까? 나는 google에 아무것도를 발견하지 않았다.
기본적으로 위의 두 줄을 모든 http 요청의 표준으로 설정하는 방법을 찾고 있습니다. APN은 프록시를 전체 전화의 기본값으로 설정하지 않으므로 앱에서 수동으로해야합니다 (그렇다는 것은 대부분의 앱이 해당 고객의 전화에서 작동하지 않음을 의미합니다).
감사합니다. 나는 그것을 살펴볼 것입니다. 실제로 내가 필요한 것일 것입니다. 나는 다른 응용 프로그램에 영향을 미치고 싶지 않습니다 :). – Kevin
아직 테스트 할 수 없지만 제안 사항을 읽었을 때 올바른 방법이라고 생각합니다. 답변으로 표시됩니다. 감사합니다. – Kevin