我一直致力于涉及客户端 - 服务器通信的应用程序。在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。
答案 0 :(得分:1)
好吧,我找到了解决这个问题的方法 该应用程序为每个REST Web服务提供了基本身份验证。这意味着我们曾经为每个Web服务获取身份验证质询,我们将凭据与挑战一起发回。 我将其更改为将请求标头中的凭据(以加密格式)作为标头字段发送。
我不确定这在iOS 7中是如何工作的,而不是在iOS 8中。但这似乎解决了我的问题:)。
答案 1 :(得分:0)
如果要将数据流式传输到NSURLConnection,请确保在流事件hasSpaceAvail到达时确切地write
新数据一次 - 我发现当我错误处理hasSpaceAvail事件时出现了连接问题。
不要write
多次回应此事件
不要write
零次(否则你不会再获得另一次hasSpaceAvail事件)