Google在发送获取下一页结果的请求时会发出INVALID_REQUEST

时间:2013-09-10 16:52:44

标签: ios google-maps google-places-api

我在iOS应用程序中遇到过问题。

我必须获得全部60个Google位置。 我创建了用于发送请求和解析结果的循环。 在这个循环中,我创建了这样的URL:

if (nextPageToken != nil && ![nextPageToken isEqualToString:@""])
    pageToken = [NSString stringWithFormat:@"&pagetoken=%@", nextPageToken];

NSString *webStringURL = [[NSString stringWithFormat:@"%@?sensor=true&key=%@&location=%@&radius=%@%@", urlString, apiKey, location, radius, pageToken] stringByAddingPercentEscapesUsingEncoding:NSUTF32StringEncoding];

前20个对象的结果链接:

https://maps.googleapis.com/maps/api/place/search/json?sensor=true&key=YOUR_KEY4&location=50.907654,34.823147&radius=50000&language=ru

它返回结果没有问题。所以没关系。

接下来的20个对象的结果链接如下:

https://maps.googleapis.com/maps/api/place/search/json?sensor=true&key=YOUR_KEY&location=50.907654,34.823147&radius=50000&pagetoken=ClREAAAA0zIx19jIHXfj0d4vjuIzshv9FTRi9l-ULIAovq5B9Ls0W_vzQFtL6rHVLfoJW4ICpIJlIG3QNRdfayfWp-4L1EjxDklb_kLBquJWX4_jSkgSEMKa1VgBGNQD3jCzW12OrOwaFExWU5GvZXgmKilw8ecaNzMhrucW

但在这种情况下,应用程序会收到状态“INVALID_REQUEST”。如果我在浏览器中打开此链接,一切正常。 Google会将结果返回给我。

你能帮我解决什么问题吗?我花了很多时间,但我无法弄清楚我做错了什么。

提前致谢。

P.S。抱歉我的英语不好。

1 个答案:

答案 0 :(得分:6)

https://developers.google.com/places/documentation/search#PlaceSearchPaging

  

发出next_page_token和之间有一段短暂的延迟   什么时候它会变得有效。在它之前请求下一页   available将返回INVALID_REQUEST响应。重试   请求具有相同的next_page_token将返回下一页   结果

尝试在请求之间添加一(或多个)秒延迟。