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

dav*_*son 7 java google-app-engine http

我正在尝试在java中实现async 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())); 
} 
Run Code Online (Sandbox Code Playgroud)

我一直收到这个错误:

com.google.apphosting.api.ApiProxy $ CallNotFoundException:找不到API包'urlfetch'或调用'Fetch()'.

我环顾四周寻找类路径中缺少的任何罐子,但没有看到任何遗漏.你知道代码是哪个jar吗?我搜索了这个错误并搜索了这个组但没有发现任何内容.谢谢,大卫

Ant*_*ony 8

使用Google appengine,您无法在本地Java应用程序中使用这些api.只有在使用google appengine sdk开发和部署Web应用程序时,这才有效.这只是为了这种方式而设计的.

当您使用此API时,它将使用http客户端,并且在应用程序引擎环境的情况下,它将使用谷歌基础设施.如果您仍想对为google appengine设计的应用程序进行单元测试,则可以考虑使用LocalURLServiceFactory.