我在应用程序中经常使用Facebook的批处理请求。在大多数情况下,它工作得很好,但有一件事让我困惑,那就是为什么他们的API有时会返回null?如果我得到这个"nulls"响应,我可以稍后再试一次,它会起作用的。
这里有一个例子:
URL:
https://graph.facebook.com/?access_token={access_token}
请求正文(编码前):
batch=[{"method":"GET","relative_url":"{page_id}?return_ssl_resources=1"},{"method":"GET","relative_url":"{page_id}?return_ssl_resources=1"},{"method":"GET","relative_url":"{page_id}?return_ssl_resources=1"},{"method":"GET","relative_url":"{page_id}?return_ssl_resources=1"}]
以下是Facebook有时会返回的内容:
[null,null,null,null]
如果我在一秒钟后提出同样的请求,我会得到正确的响应:
[{"code":200,"headers":[...headers here...],"body":{...body here...},{"code":200,"headers":[...headers here...],"body":{...body here...},{"code":200,"headers":[...headers here...],"body":{},{"code":200,"headers":[...headers here...],"body":{...body here...}}]
行为并不总是一致的。大多数时候,我可以再试一次,并得到适当的回应。偶尔我需要尝试2到3次。这个问题一天发生几十次,从我记事起就一直存在。我在Facebook上检查了我的应用诊断,我的应用没有任何限制,没有API节流,Facebook甚至没有在"API错误"报告中列出这些限制。知道为什么会发生这种事吗?
这个问题似乎已经自行解决了。我已经好几天没有看到这个错误出现了。
此处为Bug报告:http://developers.facebook.com/bugs/295201867209494?browse=search_4f42b29071ebc7f92807017