POST 值在 ios 9 中出现错误(NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9813)
Posted
技术标签:
【中文标题】POST 值在 ios 9 中出现错误(NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9813)【英文标题】:POST Value getting error in ios 9 (NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 【发布时间】:2016-02-24 06:28:07 【问题描述】:我尝试使用这些代码,但只收到类似的错误消息
错误消息:-NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9813
网址:-http://www.xxxxx.com/XXX/rest/files/downloadFile/en/linto/
Header:- Content-Type: application/x-www-form-urlencoded
RAW:- phoneNumber=%2B15163120019&uname=test
响应头:服务器:Apache-Coyote/1.1
内容类型:文本/xml
传输编码:分块
日期:格林威治标准时间 2016 年 2 月 24 日星期三 05:03:05 生的 已解析
XCODE 版本:7.2.1 我的代码:-
NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]];
NSURL * url = [NSURL URLWithString:@"https://www.indusaudio.com/WeeAudio/rest/files/downloadFile/en/linto/"];
NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSString * params =@"phoneNumber=%2B15163120019&uname=test";
[urlRequest setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]];
[urlRequest setHTTPMethod:@"POST"];
NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
NSLog(@"Response:%@ %@\n", response, error);
if(error == nil)
// NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
//NSLog(@"Data = %@",text);
];
[dataTask resume];
【问题讨论】:
【参考方案1】:试着写这行不带斜线
NSURL * url = [NSURL URLWithString:@"https://www.indusaudio.com/WeeAudio/rest/files/downloadFile/en/linto/"];
到
NSURL * url = [NSURL URLWithString:@"http://www.indusaudio.com/WeeAudio/rest/files/downloadFile/en/linto/"];
【讨论】:
你的服务器有问题,请去爸爸支持。谢谢 如果我喜欢没有斜线,我会收到这样的消息。 Response:(null) Error Domain=NSURLErrorDomain Code=-1202 "该服务器的证书无效。您可能正在连接一个伪装成“www.indusaudio.com”的服务器可能会使您的机密信息面临风险。” UserInfo=NSURLErrorFailingURLPeerTrustErrorKey=ios9 要求服务器仅支持 TLSv1.2,必须在应用 plist 中添加异常才能解决。
将此密钥添加到您的.plist
:
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections (DANGER)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
在Steven Peterson's Blog 上查看更多信息。
【讨论】:
以上是关于POST 值在 ios 9 中出现错误(NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9813)的主要内容,如果未能解决你的问题,请参考以下文章
出现错误 - (BOOL)copyItemAtURL:(NSURL *)srcURL toURL:(NSURL *)dstURL 错误:(NSError **)error
iOS 9(Swift 2.0):无法使用类型为“(NSURL,(_,_,_)throws-> Void)”的参数列表调用“dataTaskwithURL”