ios 发送请求以获取下一页结果时,Google放置INVALID_REQUEST

d8tt03nd  于 2022-12-20  发布在  iOS
关注(0)|答案(2)|浏览(163)

我在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
但在这种情况下,应用程序收到状态"无效请求"。如果我打开这个链接在浏览器一切正常。谷歌返回我的结果。
你能告诉我哪里出了问题吗?我花了很多时间,但我不知道我做错了什么。
先谢了。
另外,抱歉我的英语很差。

hgb9j2n6

hgb9j2n61#

https://developers.google.com/places/documentation/search#PlaceSearchPaging
从发出next_page_token到它生效之间有一个短暂的延迟。在下一页可用之前请求它将返回INVALID_REQUEST响应。使用相同的next_page_token重试请求将返回下一页结果。
尝试在请求之间添加一秒(或更长)的延迟。

gorkyyrv

gorkyyrv2#

这对我很有效:

var WAIT_TIME = 2000;
await new Promise(resolve => setTimeout(resolve, WAIT_TIME));

相关问题