异步post请求之Block方法

 1 #import "ViewController.h"
 2 #import "Header.h"
 3
 4 @interface ViewController ()<NSURLSessionDataDelegate>
 5
 6 @end
 7
 8 @implementation ViewController
 9
10 - (void)viewDidLoad {
11     [super viewDidLoad];
12     // Do any additional setup after loading the view, typically from a nib.
13 }
14
15 // 对数据进行加载:使用NSURLSessionDataTask和NSURLSessionTask两者没有本质区别
16 // 要处理下载任务的使用使用此任务NSURLSessionDownloadTask
17 // 要处理上传任务使用:NSURLSessionUploadTask
18
19
20 #pragma mark - post请求(异步)
21 - (IBAction)postRequest:(UIButton *)sender {
22
23     // 1.创建url
24     NSURL *url = [NSURL URLWithString:POST_URL];
25
26
27     // 2.创建请求
28     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
29
30
31     // 2.5.设置body
32     // 创建一个连接字符串(这个内容在以后的开发中接口文档都有标注)
33     NSString *dataStr = POST_BODY;
34
35     // 对连接字符串进行编码【这一步千万不能忘记】
36     NSData *postData = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
37
38     // 设置请求格式为post请求【在这里POST必须大写】
39     [request setHTTPMethod:@"POST"];
40
41     // 设置请求体(body)
42     [request setHTTPBody:postData];
43
44
45     // 3.创建session对象
46     NSURLSession *session = [NSURLSession sharedSession];
47
48
49     // 4.创建task
50     NSURLSessionTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
51
52         // 5.解析
53         if (error == nil) {
54             NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
55             NSLog(@"%@", dic);
56         }
57     }];
58
59
60     // 6.启动任务
61     [task resume];
62
63 }
64
65 @end
时间: 2024-11-10 08:11:07

异步post请求之Block方法的相关文章

异步post请求之代理方法

1 #import "ViewController.h" 2 #import "Header.h" 3 4 @interface ViewController ()<NSURLSessionDataDelegate> 5 6 /** 7 * 用于保存相关的数据 8 */ 9 @property (nonatomic, strong) NSMutableData *resultData; 10 11 @end 12 13 @implementation V

异步get请求之代理方法

1 #import "ViewController.h" 2 #import "Header.h" 3 4 @interface ViewController ()<NSURLSessionDataDelegate> 5 6 /** 7 * 用于保存相关的数据 8 */ 9 @property (nonatomic, strong) NSMutableData *resultData; 10 11 @end 12 13 @implementation V

弃用的异步get和post方法之Block方法

1 #import "ViewController.h" 2 #import "Header.h" 3 4 @interface ViewController () <NSURLConnectionDataDelegate> 5 6 @property (nonatomic, strong) NSMutableArray *dataArray; 7 8 @end 9 10 @implementation ViewController 11 12 // 懒

ios网络学习------2 用非代理方法实现异步post请求

#pragma mark - 这是私有方法,尽量不要再方法中直接使用属性,因为一般来说属性都是和界面关联的,我们可以通过参数的方式来使用属性 #pragma mark post登录方法 -(void)loginWithPostWithName:(NSString *)userName pwd:(NSString *)pwd { //1确定地址NSURL NSString *urlString = [NSString stringWithFormat:@"www.baidu.com"];

iOS.访问 Web Service.异步GET请求方法

#import <UIKit/UIKit.h> #import "T20140628024750NSNumber+Message.h" #import "T20140628024750NSString+URLEncoding.h" @interface T20140628024750ViewController : UITableViewController<NSURLConnectionDelegate> @property (nonato

iOS.访问 Web Service.异步POST请求方法

#import <UIKit/UIKit.h> #import "T20140628024917NSNumber+Message.h" #import "T20140628024917NSString+URLEncoding.h" @interface T20140628024917ViewController : UITableViewController<NSURLConnectionDelegate> @property (nonato

PHP异步请求之fsockopen()方法详解

正常情况下,PHP执行的都是同步请求,代码自上而下依次执行,但有些场景如发送邮件.执行耗时任务等操作时就不适用于同步请求,只能使用异步处理请求. 场景要求: 客户端调用服务器a.php接口,需要执行一个长达10s-20s不等的耗资源操作,假如客户端响应请求时间为5秒(请求响应超时时间),5s以上无回复即断开连接. 解决设想: 客户端调用a.php之后,a.php执行异步多线程操作调用b.php,a.php调用成功后即刻反馈给客户端回执,b.php自动执行耗资源操作. 方案: 利用fsockope

C# .Net FrameWork3.5中异步HTTP请求时,由于安全协议的问题System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)方法抛出“基础连接已经关闭: 发送时发生错误”的解决办法

现象描述: C# .Net FrameWork3.5中异步HTTP请求时,由于安全协议的问题System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)方法抛出“基础连接已经关闭: 发送时发生错误”. 原因分析: 大多数情况下是由于客户端所设置的HTTP访问请求的安全协议不符合服务器端的安全协议要求.比如,NASA提供瓦片服务的http://worldwind25.arc.nasa.gov/wms?service=WMS&v

同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式

1. 概念理解        在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:   同步/异步主要针对C端: 同步:      所谓同步,就是在c端发出一个功能调用时,在没有得到结果之前,该调用就不返回.也就是必须一件一件事做,等前一件做完了才能做下一件事.   例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 异步:      异步的概念和同步相对.当c端一个