2016-12-22 4 views
0

を失った:エラードメイン= NSURLErrorDomainコード= -1005「ネットワーク接続は、このコードを経由してクラウドにデータを送信しようとSwiftyBeaverロガーを、使用しているとき、私はこのエラーを取得しています

func sendToServerAsync(str: String?, complete: (ok: Bool, status: Int) ->()) { 

     if let payload = str, let queue = self.queue { 

      // create operation queue which uses current serial queue of destination 
      let operationQueue = NSOperationQueue() 
      operationQueue.underlyingQueue = queue 

      let session = NSURLSession(configuration: 
       NSURLSessionConfiguration.defaultSessionConfiguration(), 
       delegate: nil, delegateQueue: operationQueue) 

      // assemble request 
      let request = NSMutableURLRequest(URL: serverURL) 
      request.HTTPMethod = "POST" 
      request.addValue("application/json", forHTTPHeaderField: "Content-Type") 
      request.addValue("application/json", forHTTPHeaderField: "Accept") 

      // basic auth header 
      let credentials = "\(appID):\(appSecret)".dataUsingEncoding(NSUTF8StringEncoding)! 
      let base64Credentials = credentials.base64EncodedStringWithOptions([]) 
      request.setValue("Basic \(base64Credentials)", forHTTPHeaderField: "Authorization") 

      // POST parameters 
      let params = ["payload": payload] 
      do { 
       request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(params, options: []) 
      } catch let error as NSError { 
       toNSLog("Error! Could not create JSON for server payload. \(error)") 
      } 
      //toNSLog("sending params: \(params)") 
      //toNSLog("\n\nbefore sendToServer on thread '\(threadName())'") 

      sendingInProgress = true 
      // send request async to server on destination queue 
      let task = session.dataTaskWithRequest(request) { 
       _, response, error in 
       var ok = false 
       var status = 0 
       //toNSLog("callback of sendToServer on thread '\(self.threadName())'") 

       if let error = error { 
        // an error did occur 
        self.toNSLog("Error! Could not send entries to server. \(error)") 
       } else { 
        if let response = response as? NSHTTPURLResponse { 
         status = response.statusCode 
         if status == 200 { 
          // all went well, entries were uploaded to server 
          ok = true 
         } else { 
          // status code was not 200 
          var msg = "Error! Sending entries to server failed " 
          msg += "with status code \(status)" 
          self.toNSLog(msg) 
         } 
        } 
       } 
       return complete(ok: ok, status: status) 
      } 
      task.resume() 
     } 
    } 

奇妙なことがあります最初の2つまたは3つのログエントリで動作し、上記のエラーのため停止します。シミュレータのコンテンツと設定をリセットしてシミュレータを再起動しようとしましたが(Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."のように)、一時的に修正します。最初の2〜3回のログエントリが、再び失敗し始めます。

私はSwiftBeaverの作成者と数時間デバッグを試みました昨夜、私たちはそれを働かせることができませんでした。多くの人がこの問題を抱えているようには見えません。

私はWifi接続を切断して再接続しようとしましたが、それでも動作しませんでした。

これに関するガイダンスは非常に高く評価されます。

参考までに、私はSwift 2とXCode 7.3を使用しています。

答えて

1

おそらく、HTTPキープアライブサポートがiOSシミュレータで重大なバグを起こしているためです。詳細については

Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."

が、短い答えは、キープアライブシミュレータのテストを行うときに使用するサーバー上で無効にする、またはより良いまだ、その場合は、直ちに要求を再試行し、いくつかのロジックを追加することです参照してください。その特定のエラーが表示されます。

関連する問題