NSURLRequest com fluxo de entrada HTTPBody: o fluxo envia o evento antes de ser aberto
Quero enviar uma grande quantidade de dados para um servidor usandoNSURLConnection
(eNSURLRequest
) Para isso, crio um par deNSStream
s (usandoCFStreamCreateBoundPair(...)
) Depois passo o fluxo de entrada para oNSURLRequest
(-setHTTPBodyStream:
) e agende o fluxo de saída no loop de execução atual. Quando o loop de execução continua, recebo os eventos para enviar dados e o fluxo de entrada envia esses dados para o servidor.
Meu problema é que isso só funciona quando os dados se encaixam no buffer entre os fluxos emparelhados. Se os dados forem maiores, de alguma forma o fluxo de entrada recebe um evento (presumo "bytes disponíveis"), mas a NSURLConnection ainda não abriu o fluxo de entrada. Isso resulta em uma mensagem de erro impressa e os dados não estão sendo enviados.
Eu tentei pegar isso no meu-stream:handleEvent:
simplesmente retornando se o fluxo de entrada ainda não estiver aberto, mas meu fluxo de saída recebe um evento de fluxo fechado (provavelmente porque nunca enviei dados quando podia).
Então, minha pergunta é: como usar um par de fluxos vinculado com NSURLConnection corretamente?
(Se isso importa: estou desenvolvendo na plataforma iOS)
Qualquer ajuda é apreciada!
Cheers, Markus