Здравствуйте, мне нужно создать progressView при загрузке данных с моего веб-сервиса.отклик ожидаетсяContentLength return -1
На самом деле ожидаемая длина контура всегда возвращается -1.
После того, как вы посмотрите много проблем с подобными проблемами, похоже, что мой веб-сервис никогда не отправляет Content-Length :.
Тогда я проверить с CURL и вот результат:
< HTTP/1.1 200 OK
< Date: Thu, 21 Jun 2012 10:04:39 GMT
< Server: Apache/2.2.16 (Debian)
< X-Powered-By: PHP/5.3.3-7+squeeze9
< cache-control: no-cache
< Vary: Accept-Encoding
< Content-Type: text/html; charset=UTF-8
< Content-Length: 3239
< Connection: Keep-Alive
< Set-Cookie: PHPSESSID=u4o4i9dofdgnkfmtnf163635j6; path=/
и вот мой код, чтобы поймать длина
long long expectDataSize;
long long currentDataSize;
....
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSHTTPURLResponse *)response
{
NSLog(@"expect content length %lld", [response expectedContentLength]);
expectDataSize = [response expectedContentLength];
currentDataSize = 0;
}
Любой уже видите эту проблему?
Попробуйте: 'NSLog (@ "% @", [ответ allHeaderFields]);' и видеть если объект ответа фактически имеет поле заголовка «Длина содержимого». – Alladinian
Пример кода здесь http://stackoverflow.com/questions/23585432/totalbytesexpectedtowrite-is-1-in-nsurlsessiondownloadtask/33372970#33372970 –