使用 Afnetworking 的 Web 服务解析停止工作
Webservice Parsing using Afnetworking stopped working
************************ 更新 ** ********************
根据初步分析,我发现带有 https 的网站无法在 iPhone、iPad 或 iPod 中打开,如果我尝试仅使用 http 从应用程序访问该网站,我可以加载 [= =53=].
似乎问题出在 HTTPS 上,我能够从 HTTP 获取数据 URL
Simply
HTTPS://www.xzzx.xzzx.com/app/zxzx/zx.php/zx_xz
----> no response
HTTP://www.xzzx.xzzx.com/app/zxzx/zx.php/zx_xz,
----> valid JSON
我交叉检查了 api,因为从我这端开始请求正在后端发送并且生成了有效的 JSON
我通过在 api 文件中添加一个邮件功能来完成这一切,因为我的应用程序发出的每个请求都会通过邮件发送给我,并带有预期的响应和请求参数。但是在 xcode i总是得到 Response null 。即使它没有返回任何类型的错误或应用程序中收到的无效内容。
************************ 原始问题 * *********************
我们的网站迁移到新的 server.Now 以前的工作网络服务在 iOS 中不工作但在 POSTMAN 中工作正常。下面是我的实现
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] Error
Domain=NSURLErrorDomain Code=-1017 "cannot parse response"
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=cannot parse response,
_kCFStreamErrorDomainKey=4, NSUnderlyingError=0x19266180 {Error Domain=kCFErrorDomainCFNetwork Code=-1017 "(null)"
UserInfo={_kCFStreamErrorDomainKey=4, NSErrorPeerAddressKey={length = 16, capacity = 16, bytes =
0x100201bb4834d0520000000000000000}, _kCFStreamErrorCodeKey=-1}}}
如果我尝试检查显示邮递员响应的网络服务响应,我该如何解决问题。
在 Postman 中有用于发出 Web 请求的代码部分。我尝试使用邮递员代码但没有运气,仍然遇到相同的错误。
您是否尝试过在项目 info.plist 文件中为 https 添加 ATS 标志。可能是您的服务器没有安装 SSL/TLS 证书。
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
The concern was solved as the issue was due to multiple factors ,all
from server side not from the app side as the website previously was
hosted on HTTP 1.1 but new server was using HTTP 2.0 and HTTP/2 in
Apache is not configure correctly .reconfiguration for HTTP/2 in
Apache and valid SSl on the subdomains fixed the concern
************************ 更新 ** ********************
根据初步分析,我发现带有 https 的网站无法在 iPhone、iPad 或 iPod 中打开,如果我尝试仅使用 http 从应用程序访问该网站,我可以加载 [= =53=].
似乎问题出在 HTTPS 上,我能够从 HTTP 获取数据 URL
Simply
HTTPS://www.xzzx.xzzx.com/app/zxzx/zx.php/zx_xz
----> no responseHTTP://www.xzzx.xzzx.com/app/zxzx/zx.php/zx_xz,
----> valid JSON
我交叉检查了 api,因为从我这端开始请求正在后端发送并且生成了有效的 JSON
我通过在 api 文件中添加一个邮件功能来完成这一切,因为我的应用程序发出的每个请求都会通过邮件发送给我,并带有预期的响应和请求参数。但是在 xcode i总是得到 Response null 。即使它没有返回任何类型的错误或应用程序中收到的无效内容。
************************ 原始问题 * *********************
我们的网站迁移到新的 server.Now 以前的工作网络服务在 iOS 中不工作但在 POSTMAN 中工作正常。下面是我的实现
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] Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" 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=cannot parse response, _kCFStreamErrorDomainKey=4, NSUnderlyingError=0x19266180 {Error Domain=kCFErrorDomainCFNetwork Code=-1017 "(null)" UserInfo={_kCFStreamErrorDomainKey=4, NSErrorPeerAddressKey={length = 16, capacity = 16, bytes = 0x100201bb4834d0520000000000000000}, _kCFStreamErrorCodeKey=-1}}}
如果我尝试检查显示邮递员响应的网络服务响应,我该如何解决问题。
在 Postman 中有用于发出 Web 请求的代码部分。我尝试使用邮递员代码但没有运气,仍然遇到相同的错误。
您是否尝试过在项目 info.plist 文件中为 https 添加 ATS 标志。可能是您的服务器没有安装 SSL/TLS 证书。
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
The concern was solved as the issue was due to multiple factors ,all from server side not from the app side as the website previously was hosted on HTTP 1.1 but new server was using HTTP 2.0 and HTTP/2 in Apache is not configure correctly .reconfiguration for HTTP/2 in Apache and valid SSl on the subdomains fixed the concern