ОБНОВЛЕНИЕ:
Прежде чем отказаться от текущей библиотеки получения URL-адресов, убедитесь, что сервер общедоступен.Обратите внимание, что сервер разработки App Engine использует сетевую конфигурацию вашего компьютера при отправке запросов;таким образом, если URL-адрес, который вы пытаетесь получить, доступен для вашей сети, но не за ее пределами, это может вызвать проблемы.
Если вы убедились, что URL-адрес действительно общедоступен, пожалуйста,читайте дальше:
Извлечение URL-адресов с помощью Google App Engine в Java :
Google App Engine имеет очень четкий набор требований для выполнения HTTP-запросов от App Engine.В то время как другие методы могут работать с вашего локального сервера разработки;часто те же самые методологии не работают в рабочей среде.
Ознакомьтесь с документацией URLFetch .В нем описываются как минимум два различных способа использования либо низкоуровневой службы URLFetch, либо библиотеки java.net для выполнения HTTP-запроса.
Ниже приведен пример использования java.net, который, как я обнаружил, весьманадежный:
import java.net.MalformedURLException;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
// ...
try {
URL url = new URL("http://www.example.com/atom.xml");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = reader.readLine()) != null) {
// ...
}
reader.close();
} catch (MalformedURLException e) {
// ...
} catch (IOException e) {
// ...
}
HTTP POST:
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
// ...
String message = URLEncoder.encode("my message", "UTF-8");
try {
URL url = new URL("http://www.example.com/comment");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.write("message=" + message);
writer.close();
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
// OK
} else {
// Server returned HTTP error code.
}
} catch (MalformedURLException e) {
// ...
} catch (IOException e) {
// ...
}