2017-03-01 1 views
1

나는 TRON 프레임 워크를 신속하게 사용하고 있으며 내 URL 때문에 오류가 발생합니다. https://api.themoviedb.org/3/tv/1402/similar?api_key=myAPIkey&language=en-US&page=1 하지만 난 내 응용 프로그램을 실행할 때 나는 JSON 오류가 : 당신이 볼 수 있듯이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이 있어야한다 : 이 코드입니다

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)) 

나는 문제 때문에 생각 정확한 URL은 다음과 같습니다. 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
입니다. 차이점은 ?이으로 변환 된 것을 볼 수 있습니다.. 내가 뭘 잘못하고 있니?

+1

TRON 분명히 요청 매개 변수가'path' 것으로 기대하고'query' 매개 변수를 포함하도록 노력하고 있습니다. 'APIRequest' 클래스를 확인하고 쿼리 매개 변수를 지정할 수 있는지 확인한 다음 경로 부분 만 포함 된 요청을 만든 다음 쿼리 부분을 추가하여 호출을 나눕니다. –

+0

@DavidBerry 감사합니다. 매개 변수를 추가하여 쿼리를 추가해야했습니다. –

+0

나중에 참조 할 수 있도록 실제 솔루션을 대답으로 게시 할 수 있습니다. –

답변

3

이것은 내가 찾은 해결책은 다음과 같습니다

let relatedTronUrl = TRON(baseURL: "https://api.themoviedb.org") 

func fetchRelatedFeed(id: Int, completion: @escaping() ->()){ 
    let request: APIRequest<Related, JSONError> = relatedTronUrl.request("3/tv/\(id)/similar") 

    // I had to manually add the paramaters in this way 
    request.parameters = ["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) 
    } 
} 
+0

답을 수락하는 것을 잊지 마십시오;) –

+0

메서드를 추가 할 필요가 없습니까? like request.method = .get –

+0

내일 내 대답을 받아 들일 수 있습니다. @MatGrlt 그것은 메소드를 추가하지 않고 작동합니다 .get –

관련 문제