Web服务解析使用Afnetworking停止工作

时间:2017-07-06 10:29:57

标签: ios http https afnetworking nsurlsession

********************** 更新 ********** ************

根据初步分析,我发现使用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中有代码部分来制作网页请求。我尝试使用邮政编码,但没有运气,但仍然得到同样的错误。

enter image description here enter image description here enter image description here

2 个答案:

答案 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修复了问题