我在iOS应用程序中遇到了问题。
我必须得到所有60谷歌的地方。我创建了循环发送请求和解析结果。在这个循环中,我创建了如下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
但在这种情况下,应用程序收到状态"无效请求"。如果我打开这个链接在浏览器一切正常。谷歌返回我的结果。
你能告诉我哪里出了问题吗?我花了很多时间,但我不知道我做错了什么。
先谢了。
另外,抱歉我的英语很差。
2条答案
按热度按时间hgb9j2n61#
https://developers.google.com/places/documentation/search#PlaceSearchPaging
从发出next_page_token到它生效之间有一个短暂的延迟。在下一页可用之前请求它将返回INVALID_REQUEST响应。使用相同的next_page_token重试请求将返回下一页结果。
尝试在请求之间添加一秒(或更长)的延迟。
gorkyyrv2#
这对我很有效: