当我直接致电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返回而无缝连接到API。
我已经与OpenCalais的支持保持联系,他们可以看到有13条成功的请求,这是手动的。但是他们在日志中没有看到任何错误/失败。所以绝对是我的身边。但是会是什么?
它是GAE上的缺陷。如果我降级到requests 2.1.0
,则可以在GAE上工作。
我用GAE提高了错误。随意明显问题以进行修复。
https://code.google.com/p/googleappengine/issues/detail?id=11942&