我在我的应用程序中经常使用 Facebook 的批处理请求。在大多数情况下,它工作得非常好,但让我困惑的一件事是为什么他们的 API 有时会返回空值?如果我得到这个“nulls”响应,我可以稍后再试一次,它会起作用。
这是一个例子:
网址:
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 错误”报告中列出这些。知道为什么会这样吗?