web-dev-qa-db-ja.com

Androidエミュレータプロキシ設定

エミュレータトラフィックを表示するネットワークプロキシを設定しようとしています。

エミュレータのネットワーク設定(10.0.2.2:<port>を変更すると問題なく動作します。ただし、emulator -avd myAvd -http-proxy localhost:を使用してコマンドラインからプロキシを設定しようとすると<port>、SSLトラフィックは通過せず、タイムアウトエラーが発生します。

誰でもこれを機能させることができましたか?

ありがとう

25
Rndm

どのエミュレータを使用しているかはわかりませんが、new AndroidエミュレータアナウンスAndroid Studio 2- バグトラッカー

回避策を得るには、API 23に設定されたnewエミュレーターを使用して以下を実行する必要がありました。

  1. エミュレータを起動するときに、-http-proxy http://192.168.x.x:yyyyをフラグとして渡します。 これを行う方法の詳細については、こちらを参照してください。
  2. エミュレーター内でプロキシのAccess Point設定を構成します。これを行うには、settings->more->セルラーネットワーク->アクセスポイント名および既存のアクセスポイントを編集します。
  3. 最後に、Developer Settingsには、新しいDHCPクライアントの代わりにレガシーDHCPクライアントを使用するようにデバイスを構成するための設定があります。これは、レガシーを使用するように構成する必要があります。
  4. Airplaneモードのオンとオフを切り替えます。

Access point settings for proxyDeveloper settings for DHCP client

76
Craig Russell

https://code.google.com/p/Android/issues/detail?id=201402#c6 のコメント#6を確認してください。コンピューターのLAN IP設定を使用する場合、プロキシは-http-proxyコマンドラインスイッチを使用して機能し、他の回避策は必要ありません。

例えば:

$ emulator -avd Nexus_5X_API_23 -http-proxy http://10.102.80.149:8888
8
Fabian Frank

プロキシサーバーがAndroidエミュレーターのHTTP CONNECT要求への応答で追加のHTTPヘッダーを返す可能性があります。その場合、 既知の問題 which should '今までに修正されましたが、開発ブランチ間の非同期のため、修正はリリースされていません。詳細については my comment をご覧ください。

明確にするために、HTTPリクエストは接続トンネリング(つまりHTTP CONNECT)に依存せず、代わりに RFC72 で定義されたHTTPメッセージ転送を介して配信されるため、問題の影響を受けません。

0
Alex Zolotko

最近、いくつかのAndroid SSLトラフィックをデバッグするためにスニッフィング環境をセットアップする必要がありました。

これで、エミュレータのアクセスポイントにプロキシを設定する必要がなくなったようです(@ craig-russellの回答のステップ2〜4)。 -http-proxy起動パラメーターを追加するだけで十分です。また、APIレベル<23で試して成功しました。

私の仕様:Android Studio 2.3.1 Windows 10 Androidエミュレーターバージョン25.2.5.0

詳細: http://www.devsbedevin.net/debugging-Android-ssl-traffic/

0
Vaiden