2017-01-23 10 views
0

Я пытаюсь получить ссылку перенаправления из моего запроса на почту, но после обновления до alamofire 4.3.0 мой делегат.taskWillPerformHTTPRedirection никогда не вызывал. Что я делаю неправильно?taskWillPerformHTTPRedirection никогда не вызывал

Я звоню так:

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 много! И, пожалуйста, отредактируйте свой код, есть диспетчер sessionManager и менеджер, вводящий в заблуждение. – CheshireKat

 Смежные вопросы

  • Нет связанных вопросов^_^