Что означает ошибка CFNetwork -4 в домене CFStreamErrorHTTP? - PullRequest
1 голос
/ 04 января 2011

Клиент сообщает о сбое соединения со странным профилем: он, очевидно, завершается ошибкой только для самого первого запроса URL-адреса через CFNetwork с момента запуска приложения.

Код ошибки, по-видимому, возвращаемый CFNetwork, является доменом CFStreamErrorHTTP, но с кодом ошибки -4, который не соответствует ни одному публично определенному коду ошибки для этого домена.

В CFHTTPStream.h общедоступные коды ошибок для CFStreamErrorHTTP заканчиваются благоприятно на -3, намекая на то, что -4 может быть кодом ошибки, который использует Apple, но который еще не был публично задокументирован.

Есть идеи, что здесь происходит? Кто-нибудь еще видел этот код ошибки и нашел рифму или причину для этого?

Ответы [ 2 ]

3 голосов
/ 04 января 2011

Вероятно, не окончательный ответ, и это, возможно, изменилось, так как они закрыли источник CFNetwork, но я нашел следующее в сети, которое указывает, что -4 - ошибка потери соединения.

http://www.opensource.apple.com/source/CFNetwork/CFNetwork-129.9/HTTP/CFHTTPConnection.c

0 голосов
/ 05 января 2011

Полагаю, вам придется показать код, который не работает, но на ум приходят несколько вопросов. Во-первых, вы можете проследить эту проблему самостоятельно, вы можете воспроизвести ее? В частности, было бы интересно посмотреть, в каком потоке это происходит, и каков текущий режим runLoop. Это может свидетельствовать о потоке или соединении, которое не может планироваться во внутренних циклах выполнения CF.

Кроме этого (и это позор, CFNetwork больше не публично обновляется), это может быть миллиард вещей, но вам нужно будет записать как можно больше информации, если вы не можете напрямую отладить ошибку (подсказка подсказка - https://github.com/fpillet/NSLogger может помочь вам удаленно регистрировать информацию с клиента).

Наконец, задайте вопрос на форумах Mac Dev (или форумах iOS Dev, если ваш код работает на iOS). Пинг Куинн, он все это знает. Как только он не сможет публично ответить на вопрос, откройте инцидент DTS и отправьте ему билет #. Он тот парень, которому ты хочешь разобраться в своей проблеме: -)

...