3

有人对此有任何要求吗?我不太明白,现在我正在发送 75 个单独的 HTTP 请求,这看起来并不聪明,而且我遇到了这么大的多重查询的问题。

(虽然,对于批量请求,我担心超时的可能性更大,因为它发回的结果更大,可能会在 3G 上丢失)。

有没有人能够在objective-c中编写批处理请求,或者您对非常大的查询有其他建议吗?我知道附加代码的正确形式,但我什至不知道从哪里开始。

4

1 回答 1

9

如文档中所述,有一个使用 Graph API 执行批处理请求的选项:

curl \
    -F 'access_token=…' \
    -F 'batch=[ \
            {"method": "GET", "relative_url": "me"}, \
            {"method": "GET", "relative_url": "me/friends?limit=50"} \
        ]'\
    https://graph.facebook.com

请注意,单个批处理请求的当前限制为 50 次操作。

Facebook iOS SDK 上的实现看起来有点像这样(facebook你的 Facebook 实例在哪里):

NSString *req01 = @"{ \"method\": \"GET\", \"relative_url\": \"me\" }";
NSString *req02 = @"{ \"method\": \"GET\", \"relative_url\": \"me/friends?limit=50\" }";
NSString *allRequests = [NSString stringWithFormat:@"[ %@, %@ ]", req01, req02];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:allRequests forKey:@"batch"];
[facebook requestWithGraphPath:@"me" andParams:params andHttpMethod:@"POST" andDelegate:self];
于 2012-05-08T01:09:19.313 回答