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" />
- Androidmanifest.xml 파일에 인터넷 권한 추가
uses-permission android : name = "android.permission.INTERNET
- 창에서 cmd 열기
- "ipconfig"를 입력 한 다음 Enter 키를 누릅니다.
- IPv4 주소를 찾으십시오. . . . . . . . . . . : 192.168.XX
- 이 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
'code' 카테고리의 다른 글
Capistrano 오류 tar : tar 아카이브처럼 보이지 않습니다. (0) | 2020.09.04 |
---|---|
TextView가 1 줄보다 큰 경우 어떻게 줄임표를 표시 할 수 있습니까? (0) | 2020.09.04 |
Sequelize for Node를 사용하여 레코드를 업데이트하는 방법은 무엇입니까? (0) | 2020.09.04 |
마우스 오버시 이미지 이동-크롬 불투명도 문제 (0) | 2020.09.04 |
반사를 사용하지 않고 객체가 배열인지 확인하는 방법은 무엇입니까? (0) | 2020.09.04 |