Androidエミュレータでの認証が必要なプロキシ
-
09-06-2019 - |
質問
認証を必要とするプロキシの背後で Android エミュレータを動作させることに成功した人はいますか?
-http-proxy 引数を次のように設定してみました
http://DOMAIN/USERNAME:PASSWORD@IP:PORT
しかし成功していません。
ドキュメントに従ってみましたが無駄でした。私も試してみました -verbose-proxy
設定ですが、これはもう存在していないようです。
何かヒントはありますか?
解決
Adndroid 2.2エミュレータでなんとかできました。
Go to "Settings" -> "Wireless & Networks" -> "Mobile Networks" -> "Access Point Names" -> "Telkila"
その上に、プロパティ「プロキシ」にプロキシホスト名を設定し、プロパティ「ポート」のプロキシポートを設定します
他のヒント
SDK 1.5以降のようです。 -http-proxy
フラグも機能しません。私にとってうまくいったのは、エミュレーターで Android イメージを起動し、Android が実行されたら、に移動することです。 Home > Menu > Settings > Wireless Controls > Mobile Networks > Access Point Names
次に、デフォルトのアクセス ポイントの http プロキシ設定をセットアップします。
APN プロキシ設定を適切に行うと、エミュレータのブラウザで Web サーフィンを行うことができます。ただし、マップなどの他の機能はまだ機能しません。
同じ問題を抱えていたことを覚えています - Web で検索した後、この解決策を見つけました - コマンドラインから、
1. > adb shell
2. # sqlite3 /data/data/com.android.providers.settings/databases/settings.db
3. sqlite> INSERT INTO system VALUES(99,’http_proxy', 'proxy:port');
4. sqlite>.exit
編集:Android の最新バージョンを反映するように回答を編集しました。
どうやら、この問題は Android 2.x と Windows でのみ発生します。ここに未解決のバグがあります:http://code.google.com/p/android/issues/detail?id=5508&q=emulator%20proxy&colspec=ID%20Type%20Status%20Owner%20summary%20Stars
ファイルを見つける
androidtool.cfg
でC:\Documents and Settings\YOUR USER NAME\.android\
次の行を追加します。
http.proxyLogin=USER@PASSWORD
ファイルを保存し、Android SDK を開いてみてください。
プロキシサーバーを設定するには、APNS設定を行う必要があります。これをする:
- 設定に移動
- ワイヤレスとネットワークに移動します
- モバイルネットワークに移動
- アクセスポイント名に移動します。メニューを使用して新しいAPNを追加します
- プロキシ = ローカルホストを設定します
- Port = プロキシサーバーの作成に使用しているポートを設定します。私の場合は 8989 です。
名前とapnを設定するには、次のリンクを参照してください。
SIMカードに応じてテーブルが表示されます
これは私にとってはうまくいきました: http://code.google.com/p/android/issues/detail?id=5508#c39
どうやらエミュレータにバグがあり、名前の代わりにプロキシの IP アドレスを使用する必要があるようです...
ジェイ、ここがこの情報の理想的な場所ですが、2.1 用に更新されていません。以下に、現在 2.1 エミュレータでは機能しないメソッドをリストします。
http-post 引数は 2.1 エミュレータでは機能しません。2.1 エミュレータ内の APN リストでプロキシを設定しても機能しません。SQL-lite を介してプロキシをシステム テーブルに直接挿入することは、2.1 では機能しません。
実際、2.1 で見つけたエミュレータを介してブラウザをインターネットに接続する唯一の方法は、プロキシをまったく使用しないことです。同じ問題を抱えている人がたくさんいるので、これがすぐに修正されることを本当に願っています。
コマンドプロンプトを起動します。
エミュレータが存在するフォルダに移動します。通常、これは Android SDK の tools フォルダーにあります。
次に、次のコマンドを使用します。
emulator -avd <avd name> -http-proxy <server>:<proxy>
これを利用することでブラウザからインターネットにアクセスできるようになります。
Eclipse 3.45 でのプロキシを使用した Android SDK 1.5 エミュレータの使用
[パッケージ エクスプローラー] に移動し、Android プロジェクトを右クリックし、[実行] -> [実行構成] に移動します。
左の列のAndroidアプリケーションで、プロジェクト - >右列でAndroidが表示されます。ターゲット|一般的なタブ - >
ターゲットを選択 -> 下部の「追加のエミュレータ コマンド ライン オプション」 ->
-http-プロキシ http://www.gateProxy.com:1080 -デバッグプロキシ http://www.gateProxy.com:1080
->実行/終了。
私は Android エミュレーターを使用したことはありませんが、Windows 上の Perl と wget およびいくつかの cygwin ツール用に $http_proxy 環境変数を設定しました。Android ではこれでうまくいくかもしれませんが、ドメイン名のスラッシュは潜在的な問題のようです。そこに自分のドメイン「GLOBAL」を入れようとしたのは知っていますが、最終的にはそれを削除して次のようにしました。 http://$USER:password@www-proxy.company.com:80
ただし、私がよく遭遇する問題の 1 つは、DNS クエリにもプロキシを使用するようにプログラムに指示できないことです。そうでない場合は、常にホスト名が見つかりませんというメッセージが表示されます。プロキシを使用できないすべてのプログラムに対してプロキシを使用できるローカル DNS リゾルバーを見つけたいと考えています。
プロキシの代わりに HTTP スニファーを使用してトラフィックを表示できました。私は HTTPScoop を使用しました。これは素晴らしい小さなアプリです。
また、HTTPScoop を使用することの良い点は、インターネット共有をオンにして携帯電話で Mac からの Wi-Fi を使用しているときに、実際のデバイスのトラフィックも確認できることです。したがって、これは、電話自体とエミュレータで何が起こっているかをデバッグするのに適しています。
この方法では、スニファはエミュレータ、デバイス、コンパイラ設定などとは無関係にトラフィックを確認するため、どのエミュレータを使用するかは関係ありません。
すべての手順を説明します。
- Android エミュレータ > ワイヤレスとネットワーク > モバイル ネットワーク > アクセス ポイント > Telkilla > の設定に移動し、ここでプロキシやポートなどの必要な設定を行います。
これでプロキシ設定についてはすべて明らかになったと思います...
Android2.3.3設定 - > wireless&Networks-> mobilenetworks-> accesspointNames-> telkila->プロキシとポートをこちらの設定(xx.xx.xx.xxおよびポート)
次のコマンドを使用したときにも同じ問題が発生しました。
emulator-x86.exe -http-proxy domain\user:password@proxyIP:port -avd MyAVD
プロキシ認証エラーが発生しました。
最後に、ここで Cntlm を使用してプロキシ NTLM 認証をバイパスする必要がありました。
http://sourceforge.net/projects/cntlm/
そして、単に cntlm.ini を構成した後、代わりに次のコマンドを使用します。
emulator-x86.exe -http-proxy 127.0.0.1:3128 -avd MyAVD
そしてそれは機能します:)