2011-01-21 2 views
1

나는 내 앱 엔진 서블릿에서 직접 요청을 보내면 API 매핑을 지오 코딩하는 Google지도에서 620 오류 응답 코드를 얻고 있으므로 프록시를 사용하여 성공적인 응답을 수신 할 수밖에 없다. 프록시 서버를 설치하고 여러 대의 컴퓨터에서 테스트했습니다. 자, 내가 원하는 것은 제 프록시를 통해 GAE 서블릿에서 URL 요청을하는 것입니다.GAE Java에서 프록시를 통해 기본 HTTP GET을 보내는 방법은 무엇입니까?

내가 거기에 모든 가능한 솔루션을 시도하고 그들 중 누구도 작동하지

....

앱 엔진 런타임에서 지원

-java.net.Proxy 밤은은 ... -setting 속성 다음 같이

속성 props = System.getProperties(); props.put ("http.proxyHost", "proxyhostname"); props.put ("http.proxyPort", "proxyhostport");

아무 것도하지 않았습니다.

어플 리케이션 엔진에서 프록시를 통해 http GET을 보내는 가장 쉬운 방법은 무엇입니까?

답변

1

Google의 App Engine API가 지원하지 않습니다. java.net.Socket과 같은 필수 네트워크 클래스가 whitelisted이 아니기 때문에 타사 라이브러리 (예 : Apache의 HTTPCore/HTTPClient)를 사용하거나 직접 작성하는 것은 불가능합니다.

Google지도 API에 액세스 할 수없는 이유가 확실하지 않지만 실제로 작동하지 않는 경우 일반 HTTP 요청에 응답하는 프록시 서버에 일부 애플리케이션을 작성한 다음 Google지도에 전달합니다 .

업데이트 :이 조금 봤 well-known problem처럼 보인다 : 맵 API가 하루 IP 당 2,500 요청의 한계를 가지고 있으며, 이것은 당신이 많은 다른 응용 프로그램과 사용자의 IP를 공유 GAE에 빠르게 도달 한계입니다. 당신이 할 수있는 유일한 일은 클라이언트에게 요청을 옮기거나, 자신의 IP를 가진 프록시를 사용하거나, 다른 서비스를 사용하는 것입니다.

+0

지도 서버에서 허용 목록에없는 GAE ips에 대해 App Engine 그룹의 모든 곳에서 불평했습니다. 아무도 똥을주는 것 같지 않습니다. 믿을 수 없을 정도로 우회적 인 기법을 사용하지 않고지도 API에 간단한 HTTP 요청을 GAE에서 보내는 것은 사실상 불가능합니다. –