2017-12-21 14 views
0

AlamoFireを使用してJSONをWebサービスに投稿していますが、ポストは正常に動作しており、値はデータベースに送信されますが、AlamoFireはNSURLErrorDomainを返して、メッセージ。私は以下のコードで何が間違っているのですか?AlamoFire POSTは動作しますが、NSURLErrorDomainエラーを返しています

//AlamoFire POST 
    var request = URLRequest(url: NSURL.init(string: URL)! as URL) 
    request.httpMethod = "POST" 
    request.setValue("application/json", forHTTPHeaderField: "Content-Type") 
    request.timeoutInterval = 10 // secs 
    request.httpBody = try! JSONSerialization.data(withJSONObject: myJson, options: []) 

    Alamofire.request(request).responseJSON { 
     (response) in 
     log.info("HTTP RESPONSE: \(response.result)") 
     if response.result.isSuccess { 
      self.alertControllerMsg(msgStyle: UIAlertControllerStyle.alert,msgTitle: "Success", msgBody: "Update Delivered", cancelLbl: "", actionLbl: "Dismiss", complete: { 
       self.view.endEditing(true)      
       self.activityIndicator.stopAnimating() 
       self.sendBtn.isEnabled = true 
      }) 
     } else if response.result.isFailure { 
      let error : Error = response.result.error! 
      log.error(error) 
      self.alertControllerMsg(msgStyle: UIAlertControllerStyle.alert,msgTitle: "Error", msgBody: "Update Failed. Please try again.", cancelLbl: "", actionLbl: "Dismiss", complete: { 
       self.activityIndicator.stopAnimating() 
       self.sendBtn.isEnabled = true 
      }) 
     } 
    } 

はEDIT:ここでは、完全なエラーメッセージは次のとおりです。

Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x170643540 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=http://{{URL.REDACTED}}/odata/Updates, NSErrorFailingURLKey=http://{{URL.REDACTED}}/odata/Updates, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.} 
+0

他人が何がうまくいかないのかを分析するために、完全なエラーを投稿する必要があります。 –

+0

@SanthoshR完全なエラーメッセージが追加されました – Nate23VT

+0

私はこのスレッドですべてのソリューションを試しましたが、何の不運もありません:https://stackoverflow.com/questions/41803856/set-timeout-in-alamofire – Nate23VT

答えて

0

私は、問題がサーバ側で実際にあったことを考え出しました。 Webサービスは、HTTP BODYに加えてURLパラメータを受信して​​いました。 Alamofireは私がURLにこのパラメータを追加しているのを好まなかった。同様の呼び出しがFiddlerでは動作しますが、Alamofireでは動作しないため、エンコードされた方法でなければなりません。クエリ文字列パラメータを削除するためにWebサービスを再作成する予定です。

関連する問題