技術ブログを開設する
ログイン
もっと気軽にアウトプットできる技術ブログプラットフォーム

PC内で立てたローカルサーバにアクセスする必要があったので調べた

同じwifiに繋がっている時

同じwifiにいる場合pcのipアドレス+ポート番号でローカルサーバにアクセスできる
プライベートipを直接指定する形になるので、プログラムに組み込むのは現実的ではなさそう

手順

  • PCに割り当てられているipアドレスを取得
  • ↑で取得したipアドレスに端末側からアクセスする

同じwifiに繋ぐのがめんどくさい or ipアドレスではなくlocalhostで接続したい時

手順

  • pc上でローカルサーバを起動
  • usbデバッグを有効化したAndroid端末をPCに接続
  • chromeでchrome://inspect/#devicesにアクセス(デバックの許可を求められたら許可する)
  • Port forwarding...をクリックする
  • 右欄にローカルサーバのipアドレス+ポート番号を入力、左欄に端末側でサーバアクセスする時のポート番号を入力
  • Enable port forwardingをクリックして有効化
  • Doneで終了し、端末のブラウザでlocalhost:[↑で設定したポート番号]にアクセスすれば、pc内のローカルサーバにアクセスできる

毎回chromeのinspectを起動しなければならないが、hostがlocalhostに固定できるので、プログラムに組み込んでも問題なさそう。

エミュレータの場合

build.gradleでPCのアドレスを取得し、環境変数に設定する

// build.gradle(app)
android {
    ...
    buildTypes {
        // PCのIPアドレスを取得
        def host = InetAddress.getLocalHost().getCanonicalHostName()
        debug {
            // ipを環境変数として扱える様に
            buildConfigField "String", "LOCAL_SERVER_IP", "\"${host}\""
        }
    }
}

関連記事

この記事へのコメント

まだコメントはありません
6
@kichinagaの技術ブログ
6
このエントリーをはてなブックマークに追加