code

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

codestyles 2020. 9. 4. 07:29
반응형

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


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

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

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


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

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

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


안드로이드에서

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

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

행운을 빕니다!


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

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


다음과 같이 로컬 (실제) IP 주소와 포트 번호를 사용해야합니다.

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

그리고 매니페스트 내에서 인터넷 권한을 설정했는지 확인하십시오.

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


  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 "를 사용하십시오.

URL에서 localhost를 사용하고 emulator에서 애플리케이션을 테스트하는 경우 URL에서 localhost에 대한 시스템의 IP 주소를 바꾸거나 localhost 대신 10.0.2.2를 사용할 수 있습니다.

http : //localhost/webservice.php 에서 http://10.218.28.19/webservice.php로

여기서 10.218.28.19-> 시스템의 IP 주소.

또는

http : //localhost/webservice.php 에서 http://10.0.2.2/webservice.php로


다음과 같이 cmd 명령 "ipconfig"및 서버 포트 번호를 사용하여 로컬 IP 주소를 사용하기 만하면됩니다.

문자열 webServiceUrl = " http : //192.168.XX : your_local_server_port / your_web_service_name.php "

그리고 프로젝트 매니페스트에서 인터넷 권한을 설정했는지 확인하십시오.

나를 위해 완벽하게 작동합니다.

행운을 빕니다


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

행운을 빕니다!


그것은 나를 위해 일하고 있습니다. 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 아래에서 할 수 있습니다여기에 이미지 설명 입력


해결책은 매우 간단합니다.

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

여기에 이미지 설명 입력

참고 URL : https://stackoverflow.com/questions/5495534/java-net-connectexception-localhost-127-0-0-18080-connection-refused

반응형