请求网页的两种方式
#import <UIKit/UIKit.h>
@interface BNPAddExplainVC : UIViewController
@end
#import "BNPAddExplainVC.h"
#import "SVProgressHUD.h"
@interface BNPAddExplainVC ()<UIWebViewDelegate>
@property (nonatomic,strong)UIWebView *webView;
@end
@implementation BNPAddExplainVC
-(void)loadView{
self.webView = [[UIWebView alloc] init];
self.view = self.webView;
}
- (void)viewDidLoad {
[super viewDidLoad];
self.webView.delegate = self;
self.title = @"加号服务说明";
NSURL *url = [NSURL URLWithString:@"http://m.baidu.com/"];
NSMutableURLRequest *reuqest = [NSMutableURLRequest requestWithURL:url];
[reuqest setValue:@"iPhone AppleWebKit" forHTTPHeaderField:@"User-Agent"];
[self.webView loadRequest:reuqest];
}
#pragma mark -UIWebView代理方法
- (void)webViewDidStartLoad:(UIWebView *)webView{
[SVProgressHUD show];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView{
[SVProgressHUD dismiss];
}
- (void)viewWillDisappear:(BOOL)animated{
[SVProgressHUD dismiss];
[super viewWillDisappear:YES];
}
@end
两种方式的区别
- 方式一是用子线程来对网络发起请求,如果发送不成功,data会返回nil,程序会继续往下执行,UIWebViewDelegate三个代理方法正常执行.
- 方式二是同步方法,如果发送请求失败,会一直卡在这里,只调用了webViewDidStartLoad:代理方法;