下面为 iOS 应用程序编写的代码片段(查找网页加载时间)仅适用于 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,然后添加以下行:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
1) 如果您使用的是 WebView ,则
//可以说这是您加载请求的位置,并且您已经使用委托(delegate)设置了 webview
-(void)loadRequest{
[webView loadRequest:yourRequest];
startDate=[NSDate date];
}
//这是UIWebView的委托(delegate)回调
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSDate *endDate=[NSDate date];
double ellapsedSeconds= [endDate timeIntervalSinceDate:startDate];
}
2) 没有网页 View :
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];
关于ios - 网页加载时间代码片段仅适用于 https 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37546499/