在 Google App Engine 中从 HttpURLConnection 读取数据时出现超时异常

Timeout exception while reading data from HttpURLConnection in Google App Engine

我是 运行 App Engine 上的一个应用程序,它调用我的 Http URL Web 应用程序(运行 on Glassfish)使用输入流读取数据。这是 我的代码片段。

OutputStream os = response.getOutputStream();
URL url = new URL(Http URL);
conn = (HttpURLConnection)url.openConnection();
conn.setConnectTimeout(0); 
conn.setReadTimeout(0);  
conn.setRequestMethod("GET");
System.out.println("response code=" + conn.getResponseCode());
byte b[] = new byte[2048];
InputStream is = url.openStream();
int len;
while ((len=is.read(b))!=-1){
    os.write(b, 0, len);
    System.out.println("len=" + len);
}

但是我遇到了 "Timeout while fetching URL:" 异常。

我也尝试过 URLFetchService,但异常仍然存在

URLFetchService urlFetchService = URLFetchServiceFactory.getURLFetchService();
URL url = new URL(Http URL);
Future future = urlFetchService.fetchAsync(url);
HTTPResponse response1 = (HTTPResponse)future.get();
byte[] content = response1.getContent();
int responseCode = response1.getResponseCode();
List<HTTPHeader> headers = response1.getHeaders();
System.out.println("responseCode=" + responseCode);

请告知如何进行。预先感谢您的帮助。

解决了这个异常。我的 Web 应用程序的 Http URL(Glassfish 上的 运行)是一个内部 IP 地址。尝试从 Google 读取数据时,它应该是一个可公开访问的 IP 地址。