2014-11-03 2 views
0

나는 안드로이드 애플 리케이션에서 일하고있다. 지금은 웹 서버를 요청하고 데이터를 성공적으로 가져 오는 중입니다.안드로이드 애플 리케이션을 원격 웹 서버에 연결하는 방법

이제 서버와 모바일 장치를 동일한 네트워크에서 실행하면 문제가 없습니다. 하지만 내 웹 서버가 이전 네트워크에서 실행 중일 때. WLAN 및 Android 장치 네트워크 3G 사용 가능 내 앱에서 요청할 수 없습니다.

그렇다면 웹 서버 요청을 모든 다른 네트워크에 표시 할 수 있습니까?

android 부분에 이처럼 서버에 추가 장착 요청을하고 있습니다.

RestAdapter restAdapter = new RestAdapter.Builder() 
      .setEndpoint("http://134.162.1.120:3000") // This is the ip of my system (just random ip for illustration purpose) 
      .setLogLevel(RestAdapter.LogLevel.FULL) 
      .build(); 

내 PC와 안드로이드 장치가 동일한 네트워크에있을 때 데이터를 성공적으로 수신합니다. 서버가 로컬 LAN에있는 것처럼 하지만 내 전화와 PC가 다른 네트워크에있는 경우가

서버 내 로컬 PC에 연결하기 아니에요 ..

+0

몇 가지 코드가 필요합니다. –

+0

@KristyWelsh ... 스 니펫을 추가했습니다 ... – anand

+1

나는 그것이 안드로이드와 관련이 없다고 생각합니다. 서버가 컴퓨터에서 실행되면 네트워크 외부에 표시되지 않습니다. 가장 쉬운 방법은 클라우드의 어딘가에서 실행하는 것입니다. –

답변

1

는 모바일 장치의 경우에서 액세스 할 수있는 소리 그것은 WLAN을 통해 동일한 네트워크에 있습니다. LAN-IP로 서버에 액세스하고 있습니다. 그러나 귀하의 모바일 장치에서 3g를 사용하는 경우 LAN 외부 (인터넷에서)에서이 IP에 액세스 할 수 없습니다.

이제 어떻게 할 수 있습니까? 인터넷에서 볼 수있는 서버의 '외부'IP를 찾아서 앱에서 사용하십시오. 하지만 종종 그렇지 않은 고정 IP를 사용해야한다는 것을 기억하십시오. 당신은 또한 어떤 직업적인 웹 호스팅 서비스든지에 당신의 webservice를 접대 할 수 있었다.

+0

... 공개 IP로 시도하고 바꿨습니다. 내 LANIP ..하지만 내 웹 서비스에 연결되지 않습니다 ... 그것은 네트워크 공급자와 뭔가 할 수있다 – anand

+0

당신은 공용 IP를 사용하여 LAN에있는 모든 컴퓨터에서 이것을 재현 할 수 있어야합니다. 공용 IP로 서비스에 연결하십시오. 아마도 포트 3000은 방화벽이나 라우터에 노출 될 것입니다. – Kai

+0

포트 스캐너를 실행했습니다.이 메시지가 나타납니다 .80/tcp 필터링 된 HTTP 443/tcp open https ... HTTP 요청을 수행하지 못하나요? – anand

1

외부 IP 대신 로컬 IP를 사용하고 있다고 생각합니다. 문제가있는 곳입니다. URL을 서버의 공용 IP 주소로 바꿉니다. LAN과 WAN 모두에서 서버와 통신 할 수 있습니다.

관련 문제