2017-07-06 81 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