Http GET от GAE Java - PullRequest
       11

Http GET от GAE Java

0 голосов
/ 07 декабря 2011

Ну, я действительно надеялся, что смогу справиться с этим, не спрашивая здесь, но я не могу :( Идея довольно проста, у вас есть эта ссылка http://cetatenie.just.ro/, и ссылка важна, потому что она работает для других.

Вы хотите выполнить HTTP GET для него из GAE - локально, вот и все!

Если я сделаю это в основном классе, что-то вроде этого:

HttpClient httpClient = new DefaultHttpClient();    
HttpGet httpGet = new HttpGet("http://cetatenie.just.ro/");
HttpResponse response = httpClient.execute(httpGet);

А затем проанализируйте ответ, все в порядке, теперь я делаю то же самое (почти) в GAE - локально (в Eclipse -> Run As -> Web Application), с помощью плагина Eclipse GAE.

FetchOptions fetchOptions = FetchOptions.Builder.withDeadline(50000);
HTTPRequest request = new HTTPRequest(new URL("http://cetatenie.just.ro/"), HTTPMethod.GET, fetchOptions);
System.out.println("ULR-->" + request.getURL());    
URLFetchService service = URLFetchServiceFactory.getURLFetchService();
HTTPResponse response = service.fetch(request);
System.out.println("RESPONSE_CODE-->" + response.getResponseCode());
String responseAsString = new String(response.getContent());
System.out.println("RESPONSE_AS_STRING-->" + responseAsString);

Я всегда получаю код ошибки Http 500. Я знаю, что это указывает на проблему с сервером, но почему это работает из моего автономного приложения?

GAE делает что-то подозрительное?

С уважением, Евгений.

1 Ответ

0 голосов
/ 12 декабря 2011

Черт! На самом деле это было легко - при отправке запроса мне не хватало двух заголовков (похоже, что GAE похож на телнет - не отправлял заголовки, если вы их не указали). В любом случае вот что я добавил:

 URL url = new URL("http://cetatenie.just.ro");
 URLConnection urlConnection = url.openConnection();
 urlConnection.setRequestProperty("Host", "cetatenie.just.ro");
 urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...