请求调用在任务队列上失败,连接中止,权限被拒绝

Request call fails on Task queue with Connection aborted, Permission denied

当我直接调用 OpenCalais API 时,一切似乎都很好,我收到了一个 200 请求。

然而,当我将相同的代码放入 GAE 任务队列时,奇怪的事情发生了:

response = requests.post('https://api.thomsonreuters.com/permid/calais/',
                                     data=news.body.encode('utf8'),
                                     timeout=60,
                                     headers={'x-ag-access-token': 'xxx',
                                              'content-type': 'TEXT/RAW',
                                              'outputFormat': 'Application/JSON',
                                              'enableMetadataType': 'SocialTags'})

该行立即抛出异常:

('Connection aborted.', error(13, 'Permission denied'))

起初我以为我可能每秒点击 api 的次数太多了。所以我在那里设置了一个断点。但是对 API 的第一次调用因该异常而中断。我不明白为什么,因为当我直接执行该功能时,它可以与 200 return.

无缝连接到 API

我已经联系了 OpenCalais 支持,他们可以看到有 13 个成功的请求,这些都是手动请求。但是他们在日志中看不到任何 error/failures。所以它绝对是站在我这边的。但它会是什么?

这是GAE 的缺陷。如果我降级到 requests 2.1.0 它在 GAE 上工作正常。

我已经提出了 GAE 的错误。欢迎给问题加注星标以推动修复。

https://code.google.com/p/googleappengine/issues/detail?id=11942&thanks=11942&ts=1431082804