В ASIHttpRequest CFReadStreamOpen ((CFReadStreamRef) [self readStream])) не отправляет данные - PullRequest
0 голосов
/ 27 марта 2012

в классе ASIHTTPRequest

Я отлаживаю - (void) основной метод работы NSO с wireshark.Я хочу найти, какой метод отправить данные.

Но я отлаживаю до конца startRequest в основном методе NSOperation.Я не могу получить какие-либо данные.

Поскольку поток чтения открывает сокет-соединение с сервером, указанным параметром myUrl при создании запроса CFHTTP, должно пройти некоторое время, прежде чем поток будетсчитается открытым.Открытие потока чтения также приводит к тому, что запрос сериализуется и отправляется.

На основе вышеприведенного документа Apple о «Общении с HTTP-серверами»

наибольшая вероятность отправки данных - приведенный ниже код.Но это не так.Я не могу найти что-то в wireShark.

CFStreamClientContext ctxt = {0, self, NULL, NULL, NULL};
if (CFReadStreamSetClient((CFReadStreamRef)[self readStream], kNetworkEvents, ReadStreamClientCallBack, &ctxt)) {
    if (CFReadStreamOpen((CFReadStreamRef)[self readStream])) {
        streamSuccessfullyOpened = YES;
    }
}

куда отправлять данные ????как функция отправки или отправки через сокет.

1 Ответ

0 голосов
/ 27 марта 2012

ASIHTTPRequest построен поверх HTTP-абстракции CFNetwork (см. CFHTTPMessageCreateRequest и т. Д.), Поэтому он никогда напрямую не вызывает 'send' для сокета.

ASIHTTPRequest «отправляет» данные, сообщая CFHTTP об их отправке, например. CFHTTPMessageSetHeaderFieldValue.

...