Ios NSURLConnection和绑定流对(CFStreamCreateBoundPair或CFStreamCreateBoundPairCompat)在iPhone 3G上不工作

Ios NSURLConnection和绑定流对(CFStreamCreateBoundPair或CFStreamCreateBoundPairCompat)在iPhone 3G上不工作,ios,nsurlconnection,multipartform-data,cfnetwork,nsinputstream,Ios,Nsurlconnection,Multipartform Data,Cfnetwork,Nsinputstream,我使用SimpleURLConnections示例来实现使用绑定流对的多部分/表单数据POST请求。它在模拟器和iPhone3GS/iPhone4上运行良好 当我在iPhone3G(运行3.1.3)上试用时,没有数据发送到服务器。NSURLConnection一直挂起,直到超时。经过一些测试,我发现只有在每次连接向生产者流写入超过一次时,问题才会出现。每当我需要写不止一次(也就是说,当我必须响应多个NSstreamVenthassspaceAvailable事件时),事情就停止了 这看起来像是同

我使用SimpleURLConnections示例来实现使用绑定流对的多部分/表单数据POST请求。它在模拟器和iPhone3GS/iPhone4上运行良好

当我在iPhone3G(运行3.1.3)上试用时,没有数据发送到服务器。NSURLConnection一直挂起,直到超时。经过一些测试,我发现只有在每次连接向生产者流写入超过一次时,问题才会出现。每当我需要写不止一次(也就是说,当我必须响应多个NSstreamVenthassspaceAvailable事件时),事情就停止了


这看起来像是同一个问题:,它确实提供了一个解决方法,但我还没有弄清楚我到底需要延迟什么才能解决问题。

我也有同样的问题,似乎只有当数据适合网络堆栈的缓冲区时,才会发送数据(这可以解释为什么它在模拟器上工作,其中缓冲区可能比设备上的大得多)


我们的解决方法是延迟生产者流的调度。使用
performSelector:withObject:afterDelay:
我们调用了一个方法,在运行循环上调度输出流1秒钟后,这使URL连接有足够的时间打开流。

我做了更多的测试。现在看来问题已经解决了与此特定iPhone上的wi-fi相关。无法在蜂窝网络上复制它,也无法使用setHTTPBody上传大型数据集。因此,我猜wi-fi出现了问题。