Demo_1 NSRULConnection
NSRULConnection
苹果公司在ios8已经抛弃了,但是我还是要讲一下,因为这和后面的NSSession有着密切的联系
下面开始使用步骤:
1. 创建发送的请求
NSRequest 在这个请求中要加入你要访问的URL,其实这就是一种包装,将URL放在请求中
2. 接受放回来得数据
使用connectionWithRequest 方法将返回一个NSData类型的数据
Demo如下
//这里的url是一个网页地址
self.url=[NSURL URLWithString:self.urlTextField.text];
//创建NSURLRequest
NSURLRequest *request=[NSURLRequest requestWithURL:self.url];
//使用NSURLConnection发送同步请求
NSError *error=nil;
NSData*returnData=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
//显示到webView上
[self.webView loadData:returnData MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:self.baseURL];
重要的是其中封装信息的思想
self.url=[NSURL URLWithString:self.urlTextField.text];
NSURLRequest *request=[NSURLRequest requestWithURL:self.url];
//发送异步请求
NSOperationQueue *queue=[[NSOperationQueue alloc]init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
//子线程执行
//获取response中的状态码(200/404/500/....)
NSInteger statusCode = [(NSHTTPURLResponse*)response statusCode];//这里格式要做转换
if (statusCode==200) {
//返回成功
NSLog(@"返回成功");
//回到主线程加载到webview 凡是UI的都要放到主线程执行
dispatch_async(dispatch_get_main_queue(), ^{
[self.webView loadData:data MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:self.baseURL];
});
}else{
NSLog(@"失败:%@",connectionError.userInfo);
}
}];
}
思路总结:
1.建立请求
2.发送请求
3.接受放回数据