android-emulator スマホ localhost接続 - Androidエミュレータからのlocalhost:portへのアクセス




9 Answers

デフォルトのAVDに10.0.2.2、Genymotionに10.0.3.2を使用

実機 ローカルサーバー studio

localhost:54722で動作するローカルマシン上でWebサービスを実行しています。

私はAndroidのエミュレータで動作するアプリからサービスを呼びたいと思っています。

私は、アプリケーションで10.0.2.2を使用するとlocalhostにアクセスするが、それはポート番号でもうまく動作しないと読んでいる。 それはHttpResponseException: Bad Request言う。




私は私のlocalhost上で動作しているWebサーバーを持っています。

エミュレータを開いてローカルホストに接続したい場合は、 192.168.xxを使用しています。 つまり、あなたのローカルIPアドレスを使用する必要があります。 ちなみに、あなたのHttpResponseException (Bad Request)は、ホストが到達可能でないことを意味しません。

その他のエラーによってこの例外が発生します。




問題は、Androidエミュレータがlocalhostではなく 10.0.2.2127.0.0.1にマッピングすることです。 したがって、Webサーバーをserveron 127.0.0.1:54722構成し、 localhost:54722構成しないでlocalhost:54722 。 それはそれを行う必要があります。




「BadRequest」は、通常はサーバー自身が送信したエラーです。「 rfc 2616 」を参照してください。

10.4.1 400リクエストが不正

不正な構文のため、要求をサーバーが理解できませんでした。 クライアントは変更を加えずに要求を繰り返してはならない(SHOULD NOT)。

サーバーへの接続は正常ですが、要求がexpecetフォームに適合していません。 私はどのように接続を作成するか、どのヘッダが含まれているかはわかりませんが、チェックする必要があります。

より多くのヘルプが必要な場合は、コードの内容とサーバーへの接続に使用する内容を説明してください。

Hereで同じ問題の質問があります。答えは、ヘッダーにコンテンツタイプが設定されていないということです。




AndroidエミュレータからIISExpress Web APIにアクセスする方法を示したいと思います。 私はVisual Studio 2015を使用しています。そしてAndroid StudioからAndroid Emulatorを呼び出します。

私がする必要があるのは、 applicationhost.configファイルのバインディング設定に次の行を追加することです

<binding protocol="http" bindingInformation="*:<your-port>:" />

次に、IP4アドレスをチェックして使用し、AndroidエミュレータからAPIにアクセスします

要件: Visual Studioを管理者として実行する必要があります。 この投稿はこれを行うための完璧な方法を示しています。

詳細は、githubに関する私の記事をご覧ください。

お役に立てれば。




localhostが起動時にエミュレータで正常に動作していたように見えて、接続が拒否されました。エミュレータのブラウザから127.0.2.2を使用しました。エミュレータでアンドロイドアプリでこれを使用したときに、接続が拒否されました。

私はifconfigをして、私は192.168.2.2のipを使いました。




まだ誰かがこれを探しているなら、これは私のために働いた方法です。

あなたはあなたが接続しているデバイス/エミュレータに関してあなたのマシンのIPを見つける必要があります。 途中でエミュレータを使用するには、以下の手順に従います。

  1. VM仮想ボックスに移動 - >リストで接続されているデバイスを選択します。
  2. 設定 - >ネットワーク - >デバイスが接続されているネットワークを確認します。 私にとっては、「VirtualBox Host-Only Ethernet Adapter#2」でした。
  3. バーチャルボックスで、Files-> Preferences-> Network-> Host-Only Networksの順に進み、上記の手順で指定したネットワークのIPv4を探します。 (ホバリングすることで情報が得られます)

エミュレータからローカルホストにアクセスするためにこのIPを提供してください。 ポートは、サービスの実行/公開中に提供したものと同じです。

注1:ファイアウォールとインバウンドルールを管理していることを確認してください。

注2:マシンを再起動した後、このIPをチェックしてください。 何らかの理由で、「次のIPを使用する」を指定した場合でも、ホストオンリーIPが変更されました。




node expressやangular-cliのようなサードパーティ製のパッケージを使用している場合は、マシンのIPアドレスを見つけて、サーバ起動設定(localhostではなく)内のそのIPにホストを接続する必要があります。 その後、IPを使用してエミュレータから起動します。 たとえば、 ng serve -H 10.149.212.104 -cliを使用するには、 ng serve -H 10.149.212.104を使用する必要がありました。 その後私は使用したエミュレータから: http://10.149.212.104:4200 : http://10.149.212.104:4200 : http://10.149.212.104:4200




あなたのローカルホストを実行した後、あなたはhttp://localhost:[port number]/あなたのポート番号を見つけました。

次に、コマンドからIPアドレスを取得し、Windowsコマンドを開き、 ipconfigと入力します

私の場合、IPは192.168.10.33だったので、私のURLはhttp://192.168.10.33:[port number] /になります 。 Androidでは、スタジオはこのURLをURLとして使用します。 その後、エミュレータの手動プロキシでURLとポート番号を設定します。




Related