リモート サーバーに 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();
}
これは非常にうまくいきますが、当社の顧客の 1 人が、要求が特定のプロキシ サーバーを経由する必要がある APN を設定しました。これが機能するリクエストに次を追加すると、リクエストはプロキシ経由でサーバーに再ルーティングされます。
HttpHost httpHost = new HttpHost("proxyURL",8080);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, httpHost);
ここまではうまくいきましたが、いくつかの http リクエストを作成するライブラリも使用しています。ライブラリのコードにアクセスできないため、この 2 行をコードに追加できません。そのライブラリの作成者に連絡したところ、すべてのリクエストが自動的にプロキシを通過するように Android 環境をセットアップできるはずだと言われました。そのようなものはありますか?私はグーグルで何も見つかりませんでした。
基本的に、上記の 2 行をすべての http リクエストの標準として設定する方法を探しています。APN はプロキシを電話全体のデフォルトとして設定しないことに注意してください。そのため、アプリはこれを手動で行う必要があります (つまり、アプリの大部分はその顧客の電話では動作しません)。