HTTP加载失败,我已经尝试了所有的SO建议,但没有任何作用

时间:2016-11-23 19:14:15

标签: objective-c uiwebview nsurlconnection ios10 nsurlrequest

错误9802是"致命警报"根据Apple的docs。我看过谷歌和SO,发现没有引用9802修复这个问题。我可以改变我的代码去" apple.com"我得到了页面,但使用我自己的URL,我得到上面的错误。我已经尝试了所有我能想到的东西,但没有任何作用。是时候寻求帮助了! :d

使用

的结果
  

/ usr / bin / nscurl --ats-diagnostics https://pragerphoneapps.com

所有测试都失败(结果上传here

这是我应用的.plist文件的图片(仅限相关部分)

enter image description here

这是目标信息的图像:

enter image description here

这是我的代码:

- (IBAction)showHTMLHelp:(UIButton *)sender {

//  make the popover
UIViewController* popoverContent = [UIViewController new];
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 450, 500)];
popoverView.backgroundColor = [UIColor colorWithWhite:(CGFloat)1.0 alpha:(CGFloat)1.0];  //  frame color?
popoverContent.view = popoverView;

//resize the popover view shown in the current view to the view's size
popoverContent.preferredContentSize = CGSizeMake(450, 500);

NSString *urlAddress = @"https://pragerphoneapps.com";     // @"https://www.pragerphoneapps.com/bookstore-inventory-manager/upload-help/";
NSURL  *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

//  add the UIWebView for RichText
UIWebView *webView = [[UIWebView alloc] initWithFrame: popoverView.frame];
webView.backgroundColor = [UIColor whiteColor];  //  change background color here

//  add the webView to the popover
[webView loadRequest:requestObj];
[popoverView addSubview:webView];

//  if previous popoverController is still visible... dismiss it
if ([popoverController isPopoverVisible]) {
    [popoverController dismissPopoverAnimated:YES];
}

//create a popover controller
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];

[popoverController presentPopoverFromRect:((UIButton *)oShowHelp).frame inView:self.view
                 permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

}

2 个答案:

答案 0 :(得分:1)

我认真建议您修复SSL证书。 ATS要求您拥有有效的SSL证书,TLS 1.2或更高版本,并支持前向保密。 这将是2017年初的要求,所以最好做好准备。

无论如何,同时尝试以下步骤来实现这一点。

将它放在您的文件顶部:

NSString *urlAddress = @"https://pragerphoneapps.com";     // @"https://www.pragerphoneapps.com/bookstore-inventory-manager/upload-help/";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]];
UIWebView *webView = [[UIWebView alloc] initWithFrame: self.view.frame];
webView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:webView];
[webView loadRequest:requestObj];

在Info.plist中禁用App Transport Security。 advised here

在加载请求之前允许无效的SSL证书:

{{1}}

成功加载您网站的示例代码:

{{1}}

答案 1 :(得分:0)

我想知道为什么它无法设置" NSAllowArbitraryLoads为YES"。如果有缓存,请尝试重新启动Mac或Xcode。 你的"例外域名"设置格式错误。

enter image description here