Вот где я до сих пор с NSURLSessionUploadTask
:
- Приложение iOS запускает
NSURLSessionUploadTask
с помощью POST - сервер получает запрос HTTP POST
- сервер считывает содержимое запроса, поэтому данные загружаются
- Приложение iOS многократно вызывает
URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:
, заканчивая окончательным вызовом сtotalBytesSent
равнымtotalBytesExpectedToSend
- сервер отправляет HTTP-ответ на iOS, состоящий из следующего:
HTTP/1.1 200 OK Server: BaseHTTP/0.3 Python/2.7.10 Date: Fri, 30 Oct 2015 16:15:21 GMT Content-Type: text/html <html><head><title>POST RESPONSE</title></head><body><p>The file was uploaded.</p></body></html>
- Приложение iOS получает этот ответ (подтверждено через Wireshark)
- iOS application does not call the following methods to complete the upload task like it supposed to:
NSURLSessionTaskDelegate: -> URLSession:dataTask:didReceiveData:
NSURLSessionTaskDelegate -> URLSession:task:didCompleteWithError:
- вместо этого после зависания в течение ~ 200 секунд приложение iOS повторяет задачу загрузки данных
Эта загрузка данных, ответ HTTP 200, процесс зависания ~ 200 секунд, кажется, повторяется бесконечно. Почему NSURLSessionTaskDelegate: -> URLSession:dataTask:didReceiveData:
и NSURLSessionTaskDelegate -> URLSession:task:didCompleteWithError:
не вызываются после получения HTTP-ответа приложением iOS?