2

NSURLConnection我想使用(和)向服务器发送大量数据NSURLRequest。为此,我创建了一对绑定的NSStreams(使用CFStreamCreateBoundPair(...))。然后我将输入流传递给NSURLRequest( -setHTTPBodyStream:) 并在当前运行循环中安排输出流。当运行循环继续时,我得到发送数据的事件,输入流将此数据发送到服务器。

我的问题是,这仅在数据适合成对流之间的缓冲区时才有效。如果数据更大,那么输入流会以某种方式获得一个事件(我假设“字节可用”),但 NSURLConnection 尚未打开输入流。这会导致打印一条错误消息,并且不会发送数据。

-stream:handleEvent:如果输入流尚未打开,我试图通过简单地返回来在我的方法中捕获这一点,但随后我的输出流会收到一个流关闭事件(可能是因为我从来没有在我可以发送数据的时候发送数据)。

所以我的问题是:如何正确使用 NSURLConnection 的绑定流对?

(如果这很重要:我正在 iOS 平台上开发)

任何帮助表示赞赏!

干杯,马库斯

4

1 回答 1

1

好的,我通过延迟上传来解决这个问题,以便它在NSURLConnection有时间设置其输入流之后开始。

不过,这不是我所说的干净解决方案,因为依赖-performSelector:withObject:afterDelay:似乎有点老套。

因此,如果其他人对此有解决方案,我仍然愿意接受任何建议。

于 2010-08-19T14:17:50.997 回答