我正在使用TRON框架進行swift,並且由於我的網址而出現錯誤。 這是代碼:TRON url問題swift
let relatedTronUrl = TRON(baseURL: "https://api.themoviedb.org")
func fetchRelatedFeed(id: Int, completion: @escaping() ->()){
let request: APIRequest<Related, JSONError> = relatedTronUrl.request("/3/tv/1402/similar?api_key=myAPIkey&language=en-US&page=1")
request.perform(withSuccess: { (related) in
print("Successfully fatched our json objects")
completion()
}) { (err) in
print("Failed to fetch json ",err)
}
}
正如你可以看到正確的URL應該是:https://api.themoviedb.org/3/tv/1402/similar?api_key=myAPIkey&language=en-US&page=1
但是當我運行我的應用程序,我得到一個JSON錯誤:
Failed to fetch json APIError<JSONError>(request: Optional(https://api.themoviedb.org/3/tv/1402/similar%3Fapi_key=myAPIkey&language=en-US&page=1), response: Optional(<NSHTTPURLResponse: 0x610000235f20> { URL: https://api.themoviedb.org/3/tv/1402/similar%3Fapi_key=myAPIkey&language=en-US&page=1 } { status code: 401, headers {
"Access-Control-Allow-Origin" = "*";
Connection = "keep-alive";
"Content-Length" = 86;
"Content-Type" = "application/json;charset=utf-8";
Date = "Wed, 01 Mar 2017 16:58:38 GMT";
Server = openresty;
Status = "401 Unauthorized";
"X-RateLimit-Limit" = 40;
"X-RateLimit-Remaining" = 39;
"X-RateLimit-Reset" = 1488387528;} }), data: Optional(86 bytes), error: Optional(Alamofire.AFError.responseValidationFailed(Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(401))), errorModel: Optional(BookFinde.RelatedService.JSONError))
我覺得這個問題是由於TRON的要求,因爲正確的網址是:https://api.themoviedb.org/3/tv/1402/similar?api_key=myAPIkey&language=en-US&page=1
但我得到的是:https://api.themoviedb.org/3/tv/1402/similar%3Fapi_key=myAPIkey&language=en-US&page=1
正如你可以看到不同的是?
轉換爲%3F
。 我在做什麼錯?
TRON顯然期待的請求參數是一個'path'和你要包括'query'參數。檢查'APIRequest'類,看看它是否允許你指定查詢參數,然後將你的調用拆分爲只用路徑部分創建請求,然後添加查詢部分。 –
@DavidBerry謝謝你,我不得不通過添加參數來添加查詢。 –
您可能會發布您的實際解決方案作爲未來參考的答案。 –