我想使用以下方式将大量数据发送到服务器NSURLConnection
(and NSURLRequest
)。为此,我创建了一对绑定的NSStream
s(使用CFStreamCreateBoundPair(...)
)。然后我将输入流传递给NSURLRequest
(-setHTTPBodyStream:
)并在当前运行循环上安排输出流。当运行循环继续时,我获取发送数据的事件,并且输入流将此数据发送到服务器。
我的问题是,只有当数据适合成对流之间的缓冲区时,这才有效。如果数据较大,则输入流会以某种方式获取事件(我假设“字节可用”),但 NSURLConnection 尚未打开输入流。这会导致打印错误消息并且不会发送数据。
我试图在我的-stream:handleEvent:
方法通过简单地返回如果输入流尚未打开,但随后我的输出流获得流关闭事件(可能是因为我从未在可以时发送数据)。
所以我的问题是:如何正确使用 NSURLConnection 的绑定流对?
(如果这很重要:我正在 iOS 平台上开发)
任何帮助表示赞赏!
干杯,马库斯
好的,我通过延迟启动上传来修复此问题,以便在NSURLConnection
有时间设置其输入流。
但这不是我所说的干净的解决方案,因为依赖于-performSelector:withObject:afterDelay:
看起来有点老套。
因此,如果其他人有解决方案,我仍然愿意接受任何建议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)