升级到iOS 5后NSURLConnection失败

时间:2011-10-16 15:14:17

标签: xcode ios5

我有一个非常简单的NSURLConnection调用,在除iOS 5之外的所有iOS版本中都能正常工作。因为这是一个'sendSynchronousRequest'调用,所以在应用程序的任何地方都没有声明NSURL委托(响应应该直接回到这个方法)呼叫)。另外,因为这是一个sendSynchronousRequest,所以app中没有实现'didReceiveData'或其他与NSURL相关的方法。

以下是令人讨厌的代码行:

NSData *response = [NSURLConnection sendSynchronousRequest: serviceRequest returningResponse:nil error:nil];

当我逐步调试调试器中的代码时,我可以确认应用程序正在发送请求,并且服务器正在接收请求。我还可以确认服务器然后将响应发送回客户端。

在升级到iOS 5之前,这一切都运行良好。现在,在更新到iOS5之后,NSData变量(响应)永远不会收到任何内容,并且总是以0字节返回。

除了对iOS5的更新外,根本没有代码更改。

2 个答案:

答案 0 :(得分:2)

在iOS 5中对NSURLConnection类进行了一些更改。特别是,已弃用了几个委托方法。我遇到了类似的问题,它是由一个不再被调用的委托方法引起的。如果这听起来像您的问题,请查看正式的委托协议NSURLConnectionDelegateNSURLConnectionDataDelegate

答案 1 :(得分:0)

使用自定义Web服务器时遇到了同样的问题。问题原因是响应中的标头无效。我改变了:

HTTP / 1.1 200 / OK

为:

HTTP / 1.1 200确定

iOS 5现在接受回复。检查数据包捕获。您可能遇到相同或类似的问题。