NSURLRequest с входным потоком HTTPBody: поток отправляет событие перед открытием
Я хочу отправить большой объем данных на сервер, используяNSURLConnection
(а такжеNSURLRequest
). Для этого я создаю связанную паруNSStream
s (используяCFStreamCreateBoundPair(...)
). Затем я передаю входной поток вNSURLRequest
(-setHTTPBodyStream:
) и запланируйте выходной поток в текущем цикле выполнения. Когда цикл выполнения продолжается, я получаю события для отправки данных, и поток ввода отправляет эти данные на сервер.
Моя проблема в том, что это работает только тогда, когда данные помещаются в буфер между спаренными потоками. Если данные больше, то каким-то образом входной поток получает событие (я полагаю, «доступны байты»), но NSURLConnection еще не открыл входной поток. Это приводит к печатанию сообщения об ошибке, и данные не отправляются.
Я пытался поймать это в моем-stream:handleEvent:
метод, просто возвращающий, если входной поток еще не открыт, но тогда мой выходной поток получает событие закрытия потока (вероятно, потому что я никогда не отправлял данные, когда мог).
Итак, мой вопрос: как правильно использовать связанную пару потоков с NSURLConnection?
(Если это имеет значение: я занимаюсь разработкой на платформе iOS)
Любая помощь приветствуется!
Ура, Маркус