1

我在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”。如果我在浏览器中打开此链接,一切正常。谷歌将结果返回给我。

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

提前致谢。

PS对不起我的英语不好。

4

1 回答 1

7

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

从发出 next_page_token 到它生效之间有短暂的延迟。在下一页可用之前请求下一页将返回 INVALID_REQUEST 响应。使用相同的 next_page_token 重试请求将返回下一页结果。

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

于 2013-09-10T22:05:15.183 回答