Eclipse의 Android Emulator에서 http : // localhost 웹 서버에 연결하는 방법


485

Eclipse의 Android 에뮬레이터에서 http://localhost또는 내 로컬 호스트 웹 서버 페이지에 연결하려면 어떻게해야 http://127.0.0.1합니까?

나는 그것을 시도했지만 에뮬레이터는 여전히 로컬 호스트에 대한 Google 검색과 같은 내 요청을 취하거나 웹 서버가 정상적으로 실행되는 동안 페이지를 찾지 못했다고 말합니다.


이 질문은 Android 에뮬레이터 에 관한 것이며 해당 사례 에만 적용 할 수있는 솔루션이 있습니다 . 실제 Android 기기를 사용할 때이 문제가 발생하면 stackoverflow.com/questions/4779963/…
Chris Stratton

답변:


819

localhost는 코드가 실행되는 장치 (이 경우 에뮬레이터)를 나타냅니다.

Android 시뮬레이터를 실행중인 컴퓨터를 참조하려면 대신 IP 주소 10.0.2.2를 사용하십시오.

여기에 이미지 설명을 입력하십시오

자세한 내용은 여기를 참조 하십시오 .


12
왜 다른 질문을 언급합니까? 링크 안드로이드 에뮬레이터 네트워킹
Marvin Emil Brach

링크를 지적 해 주셔서 감사합니다. 답변이 게시되었을 때 거기에 없었던 것 같습니다.
Primal Pappachan

1
@primpap : IP 주소 대신 컴퓨터 이름을 사용할 수 있습니까 ??
KJEjava48 2016 년

@primpap 이것은 모바일 디버깅에서 작동하지 않습니다. 다른 것이 있습니까? 또는 10.0.2.2가 에뮬레이터에서 작동하지만 USB 디버깅을 위해 모바일을 연결할 때 작동하지 않기 때문에 어딘가에서 실수를하고 있습니다. ?
Jawad Zeb 2016 년

5
이 솔루션은 여기에서 특정 질문에 따라 에뮬레이터에서만 작동 합니다. 실제 Android 디바이스에서 디버깅하는 경우 서버의 실제 IP 주소 또는 이름을 사용해야하며이 특수 에뮬레이터 전용 별명을 사용할 수 없습니다. 이 답변은 훌륭 하지만 독자는 자신의 상황이 적용 가능한 상황임을주의해야합니다 .
Chris Stratton


29

가정용 컴퓨터에서 10.0.2.2를 성공적으로 사용했지만 직장에서는 작동하지 않았습니다. 몇 시간 동안 장난 한 후 Android 가상 장치를 사용하여 새 에뮬레이터 인스턴스를 만들었습니다. AVD ( ) 관리자를 만들고 마침내 10.0.2.2가 작동했습니다.

다른 에뮬레이터 인스턴스 (플랫폼은 동일)에 어떤 문제가 있는지 모르겠지만 10.0.2.2가 작동하지 않으면 새 에뮬레이터 인스턴스를 작성하십시오.


4
불행히도 새로운 AVD 인스턴스를 만든 후에도 작동하지 않습니다. 당신은 무엇을 제안합니까? 모든 것을 다시 설치하려면?
Vlado Pandžić

23

포트 번호가 http://10.0.2.2:8080/어디에 있는지 보십시오 8080. 완벽하게 작동했습니다. 시도 10.0.2.2하면 작동하지 않습니다. 포트 번호를 추가해야합니다. 또한 Microsoft IIS가 설치된 경우 제어판에서 해당 기능을 끄고 (Windows 운영 체제를 사용하는 경우) 위와 같이 시도하십시오.


2
페이지가 IIS에서 호스팅되면 어떻게됩니까?
maracuja-juice

@Marimba는 IIS 서버가 제공하는 포트를
파악한

이것은 완성 된 문자열이며 내 안드로이드 8.1 에뮬레이터에서 작동하는 유일한 코드
CodeToLife



3

에뮬레이터 "Nox App Player"의 시스템 호스트 IP 주소를 알아 내야했습니다. 내가 알아 낸 방법은 다음과 같습니다 172.17.100.2.

  1. 앱 스토어에서 Android Terminal Emulator 설치
  2. 실행 ip link show모든 네트워크 인터페이스를 표시하는 명령을 사용합니다. eth1 인터페이스가 특히 흥미로웠다
  3. 발행 ifconfig eth1명령 등의 순 쇼172.17.100.15/255.255.255.0
  4. 에서 시작하여 핑 주소를 시작 172.17.100.1하면`172.17.100.2 '에 도달합니다. 방화벽이 간섭하는지 확실하지 않지만 제 경우에는 그렇지 않습니다.

다른 사람이 다른 에뮬레이터를 알아내는 데 도움이 될 수 있습니다.


1

당신이 창에 있다면 당신은 simbol 시스템으로 가서 ipconfig를 작성 하고 당신의 컴퓨터에 할당 된 ip를 확인할 수 있습니다.


다른 답변에서 인용 된 호스트 루프백 인터페이스에 특수 별칭을 사용할 수 있으므로 에뮬레이터에서 디버깅 할 때는 필요하지 않습니다. 그러나 실제 안드로이드 장치에서 디버깅하는 경우 예, 테스트 서버의 실제 주소를 확인하고 사용해야합니다.
Chris Stratton

1

localhost:8000에뮬레이터를 실행할 때마다 아래 명령을 실행하여 실제로 컴퓨터의 로컬 호스트에 연결하는 데 사용할 수 있습니다 (Mac에서만 테스트 됨).

adb reverse tcp:8000 tcp:8000

그냥 Android Studio 터미널에 넣으십시오.

기본적으로 전화기에서 실행되는 http 서버가 포트의 연결을 수락하고 컴퓨터에 연결하거나 그 반대로 연결하는 리버스 프록시를 설정합니다.


0

나는이 주제가 이미 해결되었을 지 모르지만 최근에 Windows 컴퓨터 에서이 작업을 시도했을 때 많은 어려움에 직면했습니다. 그래서 내 솔루션은 정말 간단했습니다. 이 소프트 http://www.lenzg.net/rinetd/rinetd.html 을 다운로드했습니다 하여 포트 전달 방법에 대한 지침을 따르고 성공적으로 내 안드로이드 장치가 asp.net localhost 프로젝트를 만들기 위해 연결되어 내 중단 점에서 멈췄습니다.

내 rinetd.conf 파일 :

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82

10.1.1.20은 내 로컬 호스트 IP, 82 및 1234입니다. 또한 포트 yourlifeofbathfile.bat를 쉽게 사용할 수 있도록 목욕 파일을 흘렀습니다. 내 목욕 파일 :

rinetd.exe -c rinetd.conf

이 소프트를 시작한 후 aps.net 서버를 시작하고 안드로이드 장치 또는 로컬 네트워크의 모든 장치 (예 : Computer ABC가 퍼티를 시작 함)에서 액세스하려고하면 모든 것이 작동하는 것을 볼 수 있습니다. 라우터 설정으로 이동하거나 다른 복잡한 작업을 수행 할 필요가 없습니다. 이것이 도움이되기를 바랍니다. 즐겨.


-1

또 다른 해결 방법은 no-ip.org에서 무료 도메인을 가져 와서 로컬 IP 주소를 가리키는 것입니다. 그런 다음 사용하는 대신 http://localhost/yourwebservice시도해 볼 수 있습니다http://yourdomain.no-ip.org/yourwebservice

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.