【Android】Android EmulatorからローカルPCへアクセスする

1 min read読了の目安(約600字

前置き

REST APIやWebページにアクセスするようなAndroidアプリを作成するとき、ローカルPCにサーバーを立て、そこへアクセスしてテストするようなことはよくあると思います。
このときのアクセス方法をまとめています。

本題

環境

ローカルPCに何らかの形でHTTPサーバーを立てており、URLにGETするとJSONが返ってくるようなAPIを想定しています。

$ curl -X GET http://localhost:8080/API
{
  "name":"hoge",
  "age":255
}

問題

Android EmulatorからこのURLにGETしても(おそらく)アクセスできないでしょう。
これは、localhostがAndroid Emulator自身であり、ローカルPCではないことが原因です。

解決策

Android EmulatorはデフォルトでローカルPCとのネットワークブリッジを持っています。
以下のURLにGETすると問題なくGETできるはずです。
http://10.0.2.2:8080
POST等の他メソッドでも同様です。

まとめ

Android EmulatorからローカルPCへのアクセスは以下のURLから!
http://10.0.2.2

参考

https://developer.android.com/studio/run/emulator-networking