xampp 아파치 서버를 사용하여 내 컴퓨터에서 응용 프로그램에 리소스를 제공하고 있습니다. 하지만 위의 오류가 발생합니다.
Google에서 뭔가를 얻었습니다. 가능한 해결책을 가리키는 http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a
위의 문제에 대한 해결책은 무엇입니까?
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에뮬레이터의 자체 루프백 주소를 사용해야합니다.
참조 : 에뮬레이터 네트워킹
http://localhost:8080/Getdata.php또는 http://127.0.0.1:8080/Getdata.php당신은 사용으로 변경해야http://10.0.2.2:8080/Getdata.php
10.0.2.2로 10.0.3.2당신이 Genymotion에서 실행중인 경우.
안드로이드에서
바꾸다: 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 대신 사용해야합니다. 네트워크 / 방화벽이 설정된 방식에 따라 여전히 작동하지 않을 수 있습니다. 그러나 그것은 완전히 다른 주제입니다.
uses-permission android : name = "android.permission.INTERNET
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 "
그리고 프로젝트 매니페스트에서 인터넷 권한을 설정했는지 확인하십시오.
나를 위해 완벽하게 작동합니다.
행운을 빕니다
그것은 나를 위해 일하고 있습니다. 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