异步post请求之Block方法
2016-05-11 19:05
351 查看
#import "ViewController.h" #import "Header.h" @interface ViewController ()<NSURLSessionDataDelegate> @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } // 对数据进行加载:使用NSURLSessionDataTask和NSURLSessionTask两者没有本质区别 // 要处理下载任务的使用使用此任务NSURLSessionDownloadTask // 要处理上传任务使用:NSURLSessionUploadTask #pragma mark - post请求(异步) - (IBAction)postRequest:(UIButton *)sender { // 1.创建url NSURL *url = [NSURL URLWithString:POST_URL]; // 2.创建请求 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 2.5.设置body // 创建一个连接字符串(这个内容在以后的开发中接口文档都有标注) NSString *dataStr = POST_BODY; // 对连接字符串进行编码【这一步千万不能忘记】 NSData *postData = [dataStr dataUsingEncoding:NSUTF8StringEncoding]; // 设置请求格式为post请求【在这里POST必须大写】 [request setHTTPMethod:@"POST"]; // 设置请求体(body) [request setHTTPBody:postData]; // 3.创建session对象 NSURLSession *session = [NSURLSession sharedSession]; // 4.创建task NSURLSessionTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { // 5.解析 if (error == nil) { NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; NSLog(@"%@", dic); } }]; // 6.启动任务 [task resume]; } @end
相关文章推荐
- 【Android 基础】如何查看数字签名信息
- 关于ViewPager的点击事件的处理
- 关于jsp的一些问题和解答
- Android平台的 Ptrace, 注入, Hook 全攻略
- AutoLayout 使用详细
- HDU 3336 (KMP)
- UVA 11624 Fire!
- Servlet——Cookie与Session的对比
- ACM第三次练习—1012
- Stanford 机器学习 Dimensionality Reduction
- poj1276(多重背包)
- sql多行合并为一行
- swift (Singleton)模式
- 缓存Redis与Memcached的比较
- 剑指offer题解【调整数组顺序使奇数位于偶数前面】
- java中没有2进制的数据类型,对二进制的操作,需要使用共三种操作符
- c和c++中的内存结构的
- Android中EditText的setError文字不显示的问题
- css中的强制换行
- bash sh 用法区别