Xcode 升级到iOS 5后NSURLConnection失败

Xcode 升级到iOS 5后NSURLConnection失败,xcode,ios5,Xcode,Ios5,我有一个非常简单的NSURLConnection调用,它可以在除iOS5之外的所有iOS版本中完美地工作。由于这是一个“sendSynchronousRequest”调用,因此应用程序中的任何位置都没有声明NSURL委托(响应应直接返回到此方法调用)。此外,由于这是sendSynchronousRequest,因此应用程序中没有实现“didReceiveData”或其他与NSURL相关的方法 下面是令人不快的代码行: NSData *response = [NSURLConnection sen

我有一个非常简单的NSURLConnection调用,它可以在除iOS5之外的所有iOS版本中完美地工作。由于这是一个“sendSynchronousRequest”调用,因此应用程序中的任何位置都没有声明NSURL委托(响应应直接返回到此方法调用)。此外,由于这是sendSynchronousRequest,因此应用程序中没有实现“didReceiveData”或其他与NSURL相关的方法

下面是令人不快的代码行:

NSData *response = [NSURLConnection sendSynchronousRequest: serviceRequest returningResponse:nil error:nil];
当我在调试器中单步执行代码时,我可以确认应用程序正在发送请求,服务器正在接收请求。我还可以确认服务器正在向客户端发送响应

在我升级到iOS 5之前,这一切都运行得很好。现在,在更新到iOS5之后,NSData变量(response)从未接收任何内容,并且总是返回0字节


除了对iOS5的更新之外,没有任何代码更改。

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

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

HTTP/1.1200/OK

致:

HTTP/1.1200ok


iOS 5现在接受响应。检查您的数据包捕获。您可能有相同或类似的问题。

您是否使用了一个伪returningResponse参数进行了尝试?类引用没有说明此参数可能为NULL(错误除外)。或者它已经在苹果的已知bug列表中了。在我的应用程序中,我实际上没有使用nil参数来表示returningResponse或错误。我使用的完整代码是:NSURLResponse*serviceSponse=nil;n错误*服务错误=nil;NSData*response=[NSURLConnection sendSynchronousRequest:ServiceRequestReturnInResponse:&serviceResponse错误:&serviceError];如果我在调用后检查N错误,则它为空。如果我像这样检查NSURLResponse:NSLog(@“serviceResponse=%@,[serviceResponse URL]);它将显示我联系的服务器的URL。您的示例代码在我的iOS5模拟器上成功运行。如果您发布一个更完整的代码示例,也许我们可以复制您遇到的问题。