返回首页
当前位置: 主页 > 编程语言 > C/C++教程 >

简单的网络请求实现代码

时间:2016-10-14 22:51来源:电脑教程学习网 www.etwiki.cn 编辑:admin

// ViewController.m
// 最简单的网络请求
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
}
#pragma mark - 创建点击事件 - 初学者最简单的网络请求
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NSLog(@"测试");
[self test];
}
- (void)test{
//MARK: - 示例:访问百度首页(www.baidu.com);

//MARK: - 创建并发送一个网络请求
//MARK: - 创建的网络请求
//MARK: - 同意资源定位符,通过url可以找到唯一的一份资源,可以是网络资源/也可以是本地资源
NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"];

//MARK: - 根据url创建网络请求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

//MARK: - 获得服务器响应的数据
//MARK: - 基本上所有的网络请求都在子线程操作(注:)网络请求属于耗时操作,子线程用来处理耗时操作
//MARK: - NSURLSession默认就是开启异步请求,NSURLSession中没有提供同步的方法
//MARK: - 默认情况下completionHandler的执行线程为子线程

[[[NSURLSession sharedSession] dataTaskWithRequest:request
completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable
response, NSError * _Nullable error) {

//MARK: - 使用字符串接收二进制数据
NSString *Str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

//MARK: - 创建异步+主队列
dispatch_async(dispatch_get_main_queue(), ^{

//MARK: - 创建uiwebview
UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];

//MARK: - 直接加载二进制源码
//MARK: - [webView loadData:data MIMEType:nil textEncodingName:nil baseURL:url];
[webView loadHTMLString:Str baseURL:url];
[self.view addSubview:webView];

//MARK: - 可以将二进制文件写入到沙盒或者到本地,保存文件为(.html)格式
//MARK: - [data writeToFile:@"写入到本地或沙盒" atomically:YES];

});
}] resume];
//MARK: - resume:开启网络连接
}
@end

顶一下
(0)
0%
踩一下
(0)
0%
标签(Tag):网络请求
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐内容