iOS开发-请求网页的两种方式

请求网页的两种方式

//BNPAddExplainVC.h

#import <UIKit/UIKit.h>

@interface BNPAddExplainVC : UIViewController

@end
//BNPAddExplainVC.m

#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"];

//方式一:
//如果发送请求失败,data返回nil,程序会继续往下执行,UIWebViewDelegate三个代理方法正常执行.
//[NSURLConnection sendAsynchronousRequest:reuqest queue:[NSOperationQueue  mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
       //NSString *html = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
        //NSLog(@"%@",data);
        //[self.webView loadHTMLString:html baseURL:url];       
    //}];


//方式二:
//如果发送请求失败,会一直卡在这里,只调用了webViewDidStartLoad:代理方法;
    [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:代理方法;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值