2017-07-06 75 views
0

********************** 更新 ************** ********使用Afnetworking的Webservice解析停止工作

经过初步分析,我发现与https的网站是不开放在iPhone,iPad或iPod,如果我试图从http应用程序击中网站,我可以加载JSON。

好像关心的是HTTPS和我能够从HTTP URL

只需

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。即使它没有返回任何类型的错误或应用程序中收到无效的内容。

********************** 原问题 ****************** ****

我们的网站迁移到新的server.Now原来的工作网络的服务没有在iOS的工作,但在邮差。下面工作正常是我实现

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年7月6日15:20:45.538 DE [4013:1659696]错误 域= NSURLErrorDomain代码= -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 “(空)” 的UserInfo = {_ kCFStreamErrorDomainKey = 4,NSErrorPeerAddressKey = {长度= 16,容量= 16,字节= 0x100201bb4834d0520000000000000000},_kCFStreamErrorCodeKey = -1}}}

何如果我试图检查邮递员响应上显示的web服务响应,我是否可以排除疑虑。

在邮差有代码部分,使Web请求。我尝试使用邮政编码,但没有运气,仍然得到相同的错误。

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

回答

0

的网站先前托管于HTTP 1.1 但新的服务器是使用HTTP 2.0和关注的是从应用程序方面解决的问题是,由于多种因素的影响,从所有 服务器端不HTTP/2 Apache不为 的Apache HTTP/2和有效的SSL上的子域正确配置.reconfiguration固定的​​关注

0

您是否尝试过在项目的info.plist文件中添加ATS标志HTTPS。可能是您的服务器没有安装SSL/TLS证书。

<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 
+0

按我的知识ATS标志时设置TURE是加载HTTP请求和BTW它已被添加并且在我加载时设置为TRUE一些HTTP请求 – Shekhu

+0

然后它可能是来自服务器的响应json的问题.Postman没有像移动平台那样的限制。我会建议使用tcpdump来分析您的请求响应。 https://developer.apple.com/library/content/qa/qa1176/_index.html#//apple_ref/doc/uid/DTS10001707-CH1-SECGETTINGSTARTEDWITHTCPDUMP – Ellen

+0

由于我的自签名证书,我正面临一些问题应用它与设置安全策略一起工作以允许任何类型的证书。 AFSecurityPolicy * sec = [[AFSecurityPolicy alloc] init]; [sec setAllowInvalidCertificates:YES]; requestOperation.securityPolicy = sec; – Ellen