2016-03-20 57 views
1

我正在使用NSURLSession向服務器請求http post。它工作正常,如果一切正常。但是當服務器拋出異常時,我無法獲得響應。在瀏覽器中,我應該能夠獲得505錯誤代碼。但我無法迅速獲得它。以下是我使用的代碼。它有什麼問題嗎?當服務器端發生異常時,無法獲得http響應

let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { 
      (data, response, error) in 
      //this method is not called 
      print("get response from register service \(data) \(error)") 

     }) 

     task.resume() 
+0

這聽起來很奇怪。您可能會嘗試捲曲 - 甚至是像Wireshark這樣的更好的工具,以確認服務器的響應是正確的。 – CouchDeveloper

+0

我曾嘗試使用瀏覽器和郵遞員,我可以立即獲得錯誤響應。 –

回答

0

使用本:

let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { 
     (let data, response, let error) in 
     guard let _:NSData = data, let _:NSURLResponse = response where error == nil else { 
      // no response code 
      return 
     } 
     completeHandler(data, response, error) 
    }) 
    task.resume() 
+0

我已經嘗試過,但它仍然無法正常工作。問題是,當服務器拋出異常時,不會調用completionHandler。 –

+0

你的意思是說//無響應代碼根本沒有達到? – wajeeh

+0

不,只要後端服務器拋出異常,直到超時纔會調用swift代碼。當我使用瀏覽器訪問相同的網址時,我可以立即得到505內部錯誤。 –

相關問題