NSURLConnection在iOS8上超时

时间:2014-09-12 10:05:39

标签: cocoa-touch nsurlconnection ios8

我一直致力于涉及客户端 - 服务器通信的应用程序。在iOS 7.1之前一切正常。现在Xcode 6 GM Seed已经推出,我尝试在iOS8模拟器上构建并运行该项目。但是,所有NSURLConnections现在似乎都已超时。我无法从服务器获得任何响应。这适用于iOS 7模拟器和Xcode 6 我尝试使用NSURLSession希望能解决问题。但它没有 任何帮助将受到高度赞赏!如果其他人遇到此问题,请告诉我您是否有任何解决方法。

更新
这是我用过的代码:

NSString *authStr = [NSString stringWithFormat:@"%@:%@", username, password];  
NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding];  
NSString *authValue = [NSString stringWithFormat: @"Basic %@",[authData base64EncodedStringWithOptions:0]];  
[inURLRequest setValue:authValue forHTTPHeaderField:@"Authorization"];  

请注意,inURLRequest已经使用所需的URL进行了初始化 在此之后,只需使用inURLRequest像往常一样触发事务。例如,在NSURLSession的情况下,使用此请求对象创建下载任务并在其上调用 resume API。

2 个答案:

答案 0 :(得分:1)

好吧,我找到了解决这个问题的方法 该应用程序为每个REST Web服务提供了基本身份验证。这意味着我们曾经为每个Web服务获取身份验证质询,我们将凭据与挑战一起发回。 我将其更改为将请求标头中的凭据(以加密格式)作为标头字段发送。

我不确定这在iOS 7中是如何工作的,而不是在iOS 8中。但这似乎解决了我的问题:)。

答案 1 :(得分:0)

如果要将数据流式传输到NSURLConnection,请确保在流事件hasSpaceAvail到达时确切地write新数据一次 - 我发现当我错误处理hasSpaceAvail事件时出现了连接问题。

不要write多次回应此事件

不要write零次(否则你不会再获得另一次hasSpaceAvail事件)