********************** 更新 ********** ************
根据初步分析,我发现使用https的网站没有在iPhone,iPad或iPod中打开,如果我尝试使用http从应用程序访问网站我可以加载JSON。
似乎关注的是HTTPS,我能够从HTTP URL获取DATA
简单地
HTTPS ://www.xzzx.xzzx.com/app/zxzx/zx.php/zx_xz
---->没有回应HTTP ://www.xzzx.xzzx.com/app/zxzx/zx.php/zx_xz,
---->有效的JSON
我从我的结尾检查了api请求是在后端发送的,并且生成了有效的JSON
我这样做是通过在api文件中添加一个邮件功能,因为我的应用程序发出的每个请求都是通过邮件发送给我的,具有预期的响应和请求参数。但是在xcode中我总是得到响应null。即使它没有返回应用程序中收到的任何类型的错误或无效内容。
********************** 原始问题 ********* *************
我们的网站已迁移到新服务器。现在以前正在使用的网络服务在iOS中不起作用但是在POSTMAN中正在工作.Below是我的实现
NSURL *url = [NSURL URLWithString:urlWithAction];
NSDictionary *headers = @{ @"content-type": @"application/x-www-form-urlencoded",
@"cache-control": @"no-cache",
@"web-token": @"eb7524958-aghf-31fd8-00e4-e887df00035c"};
NSString *parmetersToPost=[NSString stringWithFormat:@"%@%@",postDataStr,appCommonParamters ];
NSMutableData *postData = [[NSMutableData alloc] initWithData:[parmetersToPost dataUsingEncoding:NSUTF8StringEncoding]];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:3000.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];
[[manager dataTaskWithRequest:request completionHandler:responseBlock] resume];
我收到以下错误
2017-07-06 15:20:45.538 DE [4013:1659696]错误 Domain = NSURLErrorDomain Code = -1017“无法解析响应” 的UserInfo = {NSErrorFailingURLStringKey = https://www.xzzx.xzzx.com/app/zxzx/zx.php/zx_xz, _kCFStreamErrorCodeKey = -1,NSErrorFailingURLKey = https://www.xzzx.xzzx.com/app/zxzx/zx.php/zx_xz, NSLocalizedDescription =无法解析响应, _kCFStreamErrorDomainKey = 4,NSUnderlyingError = 0x19266180 {错误域= kCFErrorDomainCFNetwork代码= -1017“(null)” UserInfo = {_ kCFStreamErrorDomainKey = 4,NSErrorPeerAddressKey = {length = 16,capacity = 16,bytes = 0x100201bb4834d0520000000000000000},_ kCFStreamErrorCodeKey = -1}}}
我如何解决问题,如果我试图检查邮递员回复的网络服务响应是否正在显示。
在Postman中有代码部分来制作网页请求。我尝试使用邮政编码,但没有运气,但仍然得到同样的错误。
答案 0 :(得分:0)
您是否尝试在项目info.plist文件中为https添加ATS标志。可能您的服务器未安装SSL / TLS证书。
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
答案 1 :(得分:0)
问题得到解决,因为问题是由多种因素造成的 从服务器端而不是从网站以前的应用程序端 托管在HTTP 1.1上,但新服务器使用的是HTTP 2.0和HTTP / 2 Apache没有正确配置。重新配置HTTP / 2 in 子域上的Apache和有效SSl修复了问题