0

ここに私がいるところがありNSURLSessionUploadTaskます:

  • iOS アプリケーションがNSURLSessionUploadTaskPOST を使用して開始する
  • サーバーが HTTP POST リクエストを受け取る
  • サーバーはリクエストのコンテンツを読み取り、データがアップロードされます
  • iOS アプリケーションが URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:繰り返し呼び出し、最後の呼び出しが次のtotalBytesSent値に等しいtotalBytesExpectedToSend
  • サーバーは、以下で構成される HTTP 応答を iOS に送信します。
HTTP/1.1 200 OK
サーバー: BaseHTTP/0.3 Python/2.7.10
日付: 2015 年 10 月 30 日 (金) 16:15:21 GMT
コンテンツタイプ: text/html

<html><head><title>POST RESPONSE</title></head><body><p>ファイルがアップロードされました.</p></body></html>
  • iOS アプリケーションがこの応答を受信します (Wireshark で確認) ワイヤーシャーク
  • iOS アプリケーションは、アップロード タスクを完了するために次のメソッドを呼び出し ません。
    • NSURLSessionTaskDelegate: -> URLSession:dataTask:didReceiveData:
    • NSURLSessionTaskDelegate -> URLSession:task:didCompleteWithError:
  • 代わりに、約 200 秒間ハングした後、iOS アプリケーションはデータ アップロード タスクを繰り返します。

このデータのアップロード、HTTP 200 応答、約 200 秒のハング プロセスが無期限に繰り返されるようです。HTTP 応答が iOS アプリケーションによって受信されると、呼び出されNSURLSessionTaskDelegate: -> URLSession:dataTask:didReceiveData:ないのはなぜ ですか?NSURLSessionTaskDelegate -> URLSession:task:didCompleteWithError:

4

1 に答える 1