java.net.ConnectException : localhost / 127.0.0.1 : 8080-연결이 거부되었습니다.


97

xampp 아파치 서버를 사용하여 내 컴퓨터에서 응용 프로그램에 리소스를 제공하고 있습니다. 하지만 위의 오류가 발생합니다.

Google에서 뭔가를 얻었습니다. 가능한 해결책을 가리키는 http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a

위의 문제에 대한 해결책은 무엇입니까?


1
로컬 호스트 (127.0.0.1)에 10.0.2.2 루프백을 사용합니다. 여기에서 자세한 내용을 확인할 수 있습니다. Android Emulator Networking
Dmytro Melnychuk

답변:


292

지정하지 않았으므로 장치 또는 에뮬레이터에서 서버에 연결되어 있으므로 에뮬레이터에서 응용 프로그램을 사용하고 있다고 생각합니다.

Android 에뮬레이터에서 시스템의 로컬 호스트를 참조하는 경우 http://10.0.2.2:8080/Android 에뮬레이터가 가상 머신에서 실행되므로 여기에서 127.0.0.1또는 localhost에뮬레이터의 자체 루프백 주소를 사용해야합니다.

참조 : 에뮬레이터 네트워킹


네, 정확히 저도 똑같은 일을하고 있습니다. 자세히 설명해 주시겠습니까? IP 주소를 10.0.2.2로 변경할 위치. 이것은 내가 XAMPP 서버에서 액세스를 시도하고있는 폴더 로컬 호스트 : 8080 / 항공
프라 딥


@VikasPatidar 유는 초보자입니다 내 코드에서 10.0.2.2로이 주소를 변경하는 경우 말씀 해주십시오 수 있습니다
AndroidOptimist

1
당신의 URL은 같다 예를 들어, 경우 http://localhost:8080/Getdata.php또는 http://127.0.0.1:8080/Getdata.php당신은 사용으로 변경해야http://10.0.2.2:8080/Getdata.php
카스 Patidar

1
교체 10.0.2.210.0.3.2당신이 Genymotion에서 실행중인 경우.
Jacob R

25

안드로이드에서

바꾸다: String webServiceUrl = "http://localhost:8080/Service1.asmx"

와 함께 : String webServiceUrl = "http://10.0.2.2:8080/Service1.asmx"

행운을 빕니다!


1
어느 파일에서?
user3475052

19

localhost와 127.0.0.1은 모두 '현재 머신'을 말하는 방법입니다. 따라서 PC의 localhost는 PC이고 Android의 localhost는 전화입니다. 당연히 웹 서버를 실행하지 않는 전화기는 연결을 거부합니다.

컴퓨터의 IP 주소 (Windows에서 ipconfig를 사용하여 확인)를 가져 와서 127.0.0.1 대신 사용해야합니다. 네트워크 / 방화벽이 설정된 방식에 따라 여전히 작동하지 않을 수 있습니다. 그러나 그것은 완전히 다른 주제입니다.


u는 더 구체적으로, 내 기계 chane IP 주소해야합니까 것을 설명 할 수
프라 딥

2
ipconfig를 입력하면 컴퓨터의 IP 주소를 알려줍니다. 이것은 네트워크의 개인 IP 주소 일 가능성이 높으므로 동일한 네트워크에있는 장치에서만 액세스 할 수 있으므로 WIFI가 작동 할 수 있으며 3G는 작동하지 않을 것입니다.
skorulis 2011 년

@skorulis 예, 앱 코드에서 네트워크에 연결되어 있기 때문에 127.0.0.1과 다른 시스템의 URL을 설정해야합니다.
라비 야다 브

서버가 실행되는 컴퓨터에 특정 IP를 설정할 수도 있습니다. Android 앱에서이 IP를 사용하십시오. 라우터 나 컴퓨터를 다시 시작하는 경우 컴퓨터에 대한 새 IP를 자주 얻고 코드에서이를 변경해야하기 때문에 더 좋습니다.
DOUBL3P

11
  1. Androidmanifest.xml 파일에 인터넷 권한 추가

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

  1. 창에서 cmd 열기
  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" />




3

그것은 나를 위해 일하고 있습니다. Run App에 genymotion을 사용합니다.

1. 먼저 로컬 IP를 확인했습니다. goto command mode >> 그리고 ipconfig를 작성합니다. 예 : Windows 10 >> search cmd >> 그런 다음 ipconfig를 작성합니다. 2. 그런 다음 로컬 IP 정보를 얻습니다 >>> 3. localhost ip 및 virtual box ip를 사용하십시오. genymotion을 위해 가상 박스 IP를 사용해야합니다. 아래 스크린 샷을 확인하세요. 가상 박스 호스트 네트워크에서 모든 IP 아래에서 할 수 있습니다 여기에 이미지 설명 입력


2

localhost를 10.0.2.2로 바꾸는 것은 정확하지만 localhost를 실제 머신의 ip로 바꿀 수도 있습니다 (디버그 목적에 더 좋습니다). Ofc, ip가 dhcp에 의해 제공된다면 매번 변경해야 할 것입니다.

행운을 빕니다!


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.