2017-01-23 3 views
0

내 게시물 요청에서 리디렉션 링크를 가져 오려고하지만 alamofire 4.3.0으로 업그레이드 한 후 내 delegate.taskWillPerformHTTPRedirection이 호출 된 적이 없습니다. 내가 뭘 잘못하고있어?taskWillPerformHTTPRedirection never called

let sessionManager = Alamofire.SessionManager(configuration: URLSessionConfiguration.default) 
let delegate: Alamofire.SessionDelegate = sessionManager.delegate 

delegate.taskWillPerformHTTPRedirection = { session, task, response, request in 
    let headers = response.allHeaderFields 
    MYUrlConstant.redirectLocation = headers["Location"]! as! String 
    return URLRequest(url: URL(string: MYUrlConstant.redirectLocation)!) 
} 

Alamofire.request("http://test.com", method: .post, parameters: nil).responseJSON {} 
+0

고쳤습니까? 내가 Alamofire 4.3.0에서 동일한 문제가 – CheshireKat

+0

예 .. 내 대답을보고 울부 짖는 소리 :) –

답변

1

내 문제 :

나는 이런 식으로 전화 했어 내가 리디렉션을 예상 전화를 걸 선언 관리자를 사용하지 않았다. 예 :

let sessionManager = Alamofire.SessionManager(configuration: URLSessionConfiguration.default) 

    let configuration = URLSessionConfiguration.default 
    manager = Alamofire.SessionManager(configuration: configuration) 
    let delegate: Alamofire.SessionDelegate = SessionDelegate.init() 

    manager!.delegate.taskWillPerformHTTPRedirection = { session, task, response, request in 
     let headers = response.allHeaderFields 
     let redirectLocation = headers["Location"]! as! String 
     return URLRequest(url: URL(string: redirectLocation)!) 
    } 

//make your call with your manager delcared 
manager!.request("url", method: .post, parameters: parameters).responseJSON {  
} 
+2

Thnx 많이! 코드를 편집하십시오. 세션 관리자와 관리자가 오해의 소지가 있습니다. – CheshireKat

관련 문제