我使用Foursquare的API检索场地阵列(venuesToSearch)中每个场地的菜单,但我的代码不会向控制台打印任何内容。通过将链接粘贴到JSON格式化程序中,我能够发现我收到400错误请求错误而不是if语句所要求的200错误。 The official API endpoint表示该链接的格式必须为:
https://api.foursquare.com/v2/venues/VENUE_ID/menu
其中VENUE_ID是包含特定ID的字符串。此外,由于它是一个无用户端点,因此用户无需使用Foursquare帐户登录即可使用该应用程序;相反,我只需要提供客户端ID和客户端密钥,这两者都被声明为类级别变量,并使用& client_id字符串附加到URL。
for venue in venuesToSearch {
let urlString = "https://api.foursquare.com/v2/venues/
\(venue)/menu&client_id=\(CLIENT_ID)&client_secret=\(CLIENT_SECRET)&v=20150729"
if let url = NSURL(string: urlString) {
if let data = NSData(contentsOfURL: url, options: .allZeros, error: nil) {
let json = JSON(data: data)
if json["meta"]["code"].intValue == 200 {
/* Any code after this will not execute because of the error code 400 instead of 200 */
我是否格式化了网址错误?或者我之所以完全得到400结果呢?
答案 0 :(得分:0)
正确的不是“菜单&”但是“菜单?”,我想。请尝试以下网址:
let urlString = "https://api.foursquare.com/v2/venues/\(venue)/menu?client_id=\(CLIENT_ID)&client_secret=\(CLIENT_SECRET)&v=20150729"