web-dev-qa-db-ja.com

NSURLErrorDomain Code = -1001http投稿リクエストが送信されたときのエラー

次のコードを使用して、サーバーに画像を投稿しています。

_@IBAction func postButtonPressed(sender: UIButton) {
    let task = NSURLSession.sharedSession().dataTaskWithRequest(createRequest("http://xx.xx.xxx.xxx/xxxx/"), completionHandler: {
        data, response, error in
        println(NSString(data: data, encoding: NSUTF8StringEncoding))
    })
    task.resume()
}
_

ここで、createRequest()は必要なNSURLRequestオブジェクトを作成します。

これはシミュレーターを使用すると正常に機能します。問題は、iPhoneでアプリを実行すると、次のエラーが発生することです。

_Error Domain=NSURLErrorDomain Code=-1001 "The operation couldn’t be completed. (NSURLErrorDomain error -1001.)" UserInfo=0x155e71f0 {NSErrorFailingURLKey=http://xx.xxx.xxx.xxx/xxxx/, NSErrorFailingURLStringKey=http://54.148.156.117/query/, NSUnderlyingError=0x155674d0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1001.)"}
_

このエラーはタイムアウトエラーであることがわかりました。アプリや電話を再起動しても効果はありませんでした。さらに、Webブラウザからサーバーに画像を投稿しようとしましたが、問題なく動作しました。

このタイムアウトエラーの原因は何ですか?

EDIT:ネットワークアクティビティを監視すると、送信する画像が0.1 MBであるにもかかわらず、アプリが10MBのデータを送信することに気付きました。

12
Berkan Ercan

サーバーが大きすぎると思われる画像を送信していたため、POSTリクエストでタイムアウトエラーが発生したようです。サーバーが画像を受け入れられるようにするために、画像を縮小しました。

この投稿 が示唆するように、NSURLErrorDomain Code=-1001エラーは、次のような多くの原因で発生する可能性があります。

  • サーバーの応答時間制限
  • 着信データに関するサーバールール
  • 認証の問題

他の人に役立つことを願っています

8
Berkan Ercan

返信が遅れていますが、最近、割り当てられた新しいアプリケーションの実行中にエラーが発生しました。アプリケーションは、私の会社のシステム管理者によってRLドメインがブロックされていますそれらの1つです。
URLアクセスを許可するように依頼します。その後、応答が返され、アプリケーションが完全に実行されます。
これは実際の解決策ではありませんすべての人にとってかもしれませんが、一部の開発者は制限された環境でこれによって助けを得ることができます。

2
Er. Vihar

私の場合、問題はサードパーティのライブラリにありました-FirebasePerformance。バグレポートのURL: https://github.com/firebase/firebase-ios-sdk/issues/486

2
Vlad

Application/jsonでヘッダーを使用し、リクエストを送信する問題を修正しました。

let headers: HTTPHeaders = [
        .accept("application/json")
]
AF.request(url, method: .post, parameters: score, encoder: JSONParameterEncoder.default, headers: headers)
1
Gil Beyruth

私の場合、リクエストのタイムアウトを増やすだけで問題は解決しました。

1
Ashutosh Shukla