0

我正在使用 SimpleURLConnections 示例使用绑定的流对来实现 multipart/form-data POST 请求。它在模拟器和 iPhone 3GS/iPhone 4 上运行良好。

当我在 iPhone 3G(运行 3.1.3)上尝试时,没有数据被发送到服务器。NSURLConnection 一直挂着,直到超时。经过一些测试后,我发现只有在每个连接多次写入生产者流时才会出现问题。每当我需要写不止一次时(即当我必须响应多个 NSStreamEventHasSpaceAvailable 事件时),事情就会停止工作。

这看起来像同样的问题:NSURLRequest with HTTPBody input stream: Stream 在打开之前发送事件,它确实提供了一种解决方法,但我还没有弄清楚我需要延迟什么才能解决问题。

4

1 回答 1

0

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

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

于 2011-05-12T19:59:23.263 回答