java.net.ConnectException:localhost / 127.0.0.1:8080-接続が拒否されました


97

私のマシンからアプリケーションにリソースを提供するためにxampp apacheサーバーを使用しています。しかし、上記のエラーが発生します。

グーグルで何かを得た。ここで可能な解決策を指しています http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a

上記の問題の解決策は何ですか?


1
ローカルホスト(127.0.0.1)への10.0.2.2ループバックを使用します。あなたはここでそれについてもっと読むことができますAndroidのエミュレータネットワーキング
ドミーツロ・メルニーカック

回答:


292

指定していないため、デバイスまたはエミュレーターからサーバーに接続しているため、エミュレーターでアプリケーションを使用していると思います。

Androidエミュレータからシステムのローカルホストを参照している場合は、Androidエミュレータhttp://10.0.2.2:8080/が仮想マシンで実行されるため、ここを127.0.0.1使用localhostする必要があります。そうしないと、エミュレータ独自のループバックアドレスになります。

参照:エミュレーターネットワーキング


はい、まったく同じことをしています。詳細に説明できますか?IPアドレスを10.0.2.2に変更する場所。これは、私はXAMPPのサーバからアクセスしようとしているフォルダです localhostを:8080 /エアロ
プラディープ

1
わかりました。http:// localhost:8080 / link / to / resource.xmlなどのアプリケーションで指定されたパスをhttp://10.0.2.2:8080/link/to/resource.xmlに変更する
pradeep

@VikasPatidarは、コードでこのアドレスを10.0.2.2に変更する場所を初心者として教えてください
AndroidOptimist

1
例えば、あなたのURLは次のようにある場合http://localhost:8080/Getdata.phphttp://127.0.0.1:8080/Getdata.php、あなたが使用としてそれを変更する必要がありますhttp://10.0.2.2:8080/Getdata.php
ヴィカスPatidar

1
Genymotionで実行し10.0.2.210.0.3.2いる場合は、に置き換えます。
Jacob R

25

アンドロイドで

交換: String webServiceUrl = "http://localhost:8080/Service1.asmx"

と: String webServiceUrl = "http://10.0.2.2:8080/Service1.asmx"

幸運を!


1
どのファイルのどこに?
user3475052 2018

19

localhostと127.0.0.1は、どちらも「現在のマシン」を表す方法です。したがって、PCのlocalhostはPCであり、Androidのlocalhostは電話です。お使いの携帯電話はもちろんウェブサーバーを実行していないので、接続を拒否します。

マシンのIPアドレスを取得し(Windowsでipconfigを使用して調べる)、127.0.0.1の代わりにそれを使用する必要があります。ネットワーク/ファイアウォールの設定方法によっては、これでも機能しない場合があります。しかし、それはまったく別のトピックです。


より詳細に説明できますか
プラディープ

2
ipconfigと入力すると、マシンのIPアドレスが表示されます。これはネットワークのプライベートIPアドレスである可能性が高いため、同じネットワーク上にあるデバイスからのみアクセスできるため、WIFIはおそらく機能しますが、3Gはおそらく機能しません。
skorulis 2011年

@skorulisはい、アプリコードでネットワークに接続しているため、127.0.0.1とは異なるマシンのURLを設定する必要があります。
Ravi Yadav 2016年

サーバーが実行されているコンピューターに特定のIPを設定することもできます。このIPをAndroidアプリで使用します。ルーターまたはコンピューターを再起動する場合、コンピューターに新しいIPを頻繁に取得し、コードで変更する必要があるため、これはより良い方法です。
DOUBL3P

11
  1. Androidmanifest.xmlファイルにインターネット権限を追加する

uses-permission android:name = "android.permission.INTERNET

  1. Windowsでコマンドを開く
  2. 「ipconfig」と入力してEnterキーを押します
  3. IPv4アドレスを見つけます。。。。。。。。。。。:192.168.XX
  4. このURLを使用します " http://192.168.XX:your_virtual_server_port / your_service.php "

おかげで、これはNOXエミュレーターとXammpで機能します。
Misam Mehmannavaz

9

次のように、ローカル(実際の)IPアドレスとポート番号を使用するだけです。

String webServiceUrl = "http://192.168.X.X:your_virtual_server_port/your_service.php"

そして、あなたがマニフェスト内でインターネット許可を設定したことを確認してください

<uses-permission android:name="android.permission.INTERNET" />



4

次のように、ローカルIPアドレスを使用する必要があります。cmdコマンド「ipconfig」とサーバーのポート番号を使用します。

String webServiceUrl = " http://192.168.XX:your_local_server_port / your_web_service_name.php "

プロジェクトマニフェストでインターネットのアクセス許可を設定したことを確認してください

それは私にとって完璧に機能しています

幸運を


3

それは私のために働いています。Run Appにはgenymotionを使用しています。

1.まず、ローカルIPを確認しました。gotoコマンドモード>>そしてipconfigと書きます。例:Windows 10 >> search cmd >> then ipconfigと入力します。2.次に、ローカルIP情報を取得します。>>> 3.ローカルホストIPと仮想ボックスIPを使用します。スクリーンショットの下のgenymotion.Checkに仮想ボックスIPを使用する必要があります。あなたはvirtualboxホストネットワークの下の任意のIPの下にできます ここに画像の説明を入力してください


2

localhostを10.0.2.2で置き換えることは正しいですが、localhostを物理マシンのipで置き換えることもできます(デバッグ目的の場合はより優れています)。多くの場合、dhcpによってIPが提供されている場合は、毎回変更する必要があります...

幸運を!


0

解決策は非常に簡単です。

1 Androidmanifest.xmlファイルにインターネット権限を追加します

<uses-permission android:name="android.permission.INTERNET" />

[2] httpd.configファイルを変更する

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

TO

Order Deny,Allow
Allow from all
Allow from 127.0.0.1

And restart your server.

[3]そして最も無力なステップ。 あなたのネットワークをあなたのホームネットワークにしてください

[コントロールパネル]> [ネットワークとインターネット]> [ネットワークと共有センター]に移動します

Click on your Network and select HOME NETWORK

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.