2016-03-20 11 views
1

NSURLSessionを使用してhttp post to serverを要求しています。すべてが正常であれば正常に動作します。しかし、サーバーが例外をスローするときに私は応答を得ることができません。ブラウザでは、私は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

いいえ、バックエンドサーバーが例外をスローすると、スウィフトコードはタイムアウトするまで呼び出されません。同じURLにアクセスするためにブラウザを使用すると、すぐに505の内部エラーが発生する可能性があります。 –

関連する問題