【问题标题】:Web page loading time code snippet works fine only for https sites网页加载时间代码片段仅适用于 https 站点
【发布时间】:2016-05-31 13:00:43
【问题描述】:

以下为 iOS 应用程序编写的代码 sn-p(查找网页加载时间)仅适用于 https 网站。但是,当我尝试提供 http 站点时,它会显示网页加载错误。我应该更改哪部分代码?

self.setTextLabel.text = @"Loading...";
    NSURL *urlValue = [NSURL URLWithString:_textView.text];
    NSURLRequest *request= [NSURLRequest requestWithURL:urlValue];
    NSDate *start=[NSDate date];
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    /*NSURLSessionDataTask *task =[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data,NSURLResponse *response,NSError *error)
    {*/
    NSDate *end=[NSDate date];
        if(response != nil)
        {
            double ellapsedSeconds= [end timeIntervalSinceDate:start];
            self.setTextLabel.text = [NSString stringWithFormat:@"%f ", ellapsedSeconds];

        }
        else
        {
            self.setTextLabel.text = @"Web Page Loading error !";

        }

【问题讨论】:

  • 你必须在你的 info.plist 添加 NSAppTransportSecurity 密钥 NSAppTransportSecurityNSAllowsArbitraryLoads

标签: ios loading webpage


【解决方案1】:

首先你需要这样做:打开 Info.plist,并添加以下行:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

1) 如果您使用的是网络视图,那么

//可以说这是您加载请求的地方,并且您已经使用委托设置了 webview

-(void)loadRequest{

      [webView loadRequest:yourRequest];
      startDate=[NSDate date];
   }

//这是 UIWebView 的委托回调

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
   NSDate *endDate=[NSDate date];
   double ellapsedSeconds= [endDate timeIntervalSinceDate:startDate];
}

2) 没有网页视图:

 NSDate *start=[NSDate date];
    NSURLRequest *r= [[NSURLRequest alloc] initWithURL:url]; 
    NSData *response=   [NSURLConnection sendSynchronousRequest:r returningResponse:nil error:nil];
   NSDate *end=[NSDate date];
 double ellapsedSeconds= [start timeIntervalSinceDate:end];

【讨论】:

  • 还是不行!而且弧机制不允许显式自动释放
  • 感谢 ARC 版本更正。你能更具体点什么不起作用吗?可以提供那个日志吗?
  • 假设google.com 在我的文本框中输入一个网址,它给了我加载时间。但是当我输入saavn.com 时,它会出现网页加载错误。
猜你喜欢
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 2021-12-09
  • 2016-11-14
  • 1970-01-01
  • 2012-10-12
相关资源
最近更新 更多