java - 尝试在 google app engine for java 中实现异步 http 时出现奇怪的异常

标签 java http google-app-engine

我正在尝试在 java 中实现异步 http。这是重要的 部分代码:

for (String urlString : urls) 
{ 
    // TODO: try and get rid of these two heap allocations 
    url = new URL(urlString); 
    request = new HTTPRequest(url); 
    request.addHeader(userAgentHeader); 
    request.addHeader(authorizationHeader); 
    request.addHeader(acceptEncodingHeader); 
    request.addHeader(acceptCharsetHeader); 
    responses.add(URLFetchServiceFactory.getURLFetchService().fetchAsync(reques t)); 
    apiCallsMade++; 
} 
for (Future<HTTPResponse> futureResponse : responses) 
{ 
    parseResponse(new String(futureResponse.get().getContent())); 
} 

我一直收到这个错误:

com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'urlfetch' or call 'Fetch()' was not found.

我环顾四周寻找任何遗失的 jar 类路径,但没有看到任何遗漏。你知道哪个 jar 该代码在?我用谷歌搜索了错误并搜索了这个 组,但一无所获。 谢谢, 大卫

最佳答案

使用 Google appengine,您不能在本地 java 应用程序中使用这些 api。这仅在您使用 google appengine sdk 开发和部署 Web 应用程序时有效。这旨在仅以这种方式工作。

当您使用此 api 时,它将使用 http 客户端,如果是应用引擎环境,它将使用 google 基础架构。如果您仍想对为 google appengine 设计的应用程序进行单元测试,您可以考虑使用 LocalURLServiceFactory。

关于java - 尝试在 google app engine for java 中实现异步 http 时出现奇怪的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299673/

相关文章:

java - '0000-00-00 00 :00:00' can not be represented as java. sql.Timestamp 错误

java - 如何让媒体播放器自动切换到下一轨道?

java - Allure java 根据故事或功能运行特定测试

google-app-engine - 具有相同谷歌应用程序引擎实例的不同网址有不同的主题?

java - 在 GoogleEngine (Java) 上,在 JDO 中,如何根据父对象的 id 查询子对象列表?

java - Maven 使用 Jetty 运行多模块应用程序

PHP 无法从 URL 获取文本(file_get_content,CURL 不起作用)

flash - 是否可以下载实时视频?

php - CURL 在不同时间针对同一页面返回响应代码 200 和 0

google-app-engine - Google App Engine 与 Tomcat