ホストOSに立ち上がっているWebサーバーにエミュレータから接続したい

WebアプリとAndroidアプリを開発していて、開発中のWebアプリにAndroidアプリから接続したい場合がある。

Android端末から見てlocalhostはAndroid OSのlocalhostのことなので、ホストOSに接続できない。

Androidエミュレータから見たホストOSのIPアドレス

Androidエミュレータでは仮想ルータにより10.0.2.2がホストOSのIPアドレスとして設定されている。

Android Emulator のネットワークを設定する | Android Developers

確認

pythonで簡易Webサーバーを起動(ホストOS)

テスト用にHTMLファイルを作っておく。
ファイル名はindex.htmlとしておく。

<html>
  <body>
    <div style="font-size: 100px;">Hello!</div>
  </body>
</html>

index.htmlを保存したフォルダにてpythonで簡易Webサーバーを起動する。

$ python3 -m http.server 8000

エミュレータのブラウザでアクセス

エミュレータでGoogle Chromeを起動し、http://10.0.2.2:8000にアクセスして ホストOSで起動したWebサーバーにアクセスできる。

ホストOSへのアクセス