2017-01-23 1 views
0

Ich versuche, den Umleitungslink von meinem Post-Anfrage zu bekommen, aber nach dem Upgrade auf Alamofire 4.3.0 hat meine delegate.taskWillPerformHTTPRedirection nie aufgerufen. Was mache ich falsch?taskWillPerformHTTPRedirection nie aufgerufen

Ich nenne diese Art und Weise:

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

haben Sie es behoben? Ich habe das gleiche Problem in Alamofire 4.3.0 – CheshireKat

+0

Yeah .. Siehe meine Antwort unten :) –

Antwort

1

Mein Problem: hat die deklarierten Manager nicht verwendet, um einen Anruf zu tätigen, die ich die Umleitung erwartet. Beispiel:

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 viel! Und bitte bearbeiten Sie Ihren Code, es ist ein SessionManager und Manager irreführend. – CheshireKat

Verwandte Themen