iOS- 网络访问两种常用方式【GET & POST】实现的几个主要步骤

时间:2021-12-13 01:06:12

1.前言                              

上次,在博客里谈谈了【GET & POST】的区别,这次准备主要是分享一下自己对【GET & POST】的理解和实现的主要步骤。

在这就不多废话了,直接进主题,有什么不足的欢迎大家指出来。

网络访问两种常用方式【GET & POST】的区别

2.GET                             

2.1. 定义URL,确定要访问的地址                           

NSURL *url = [NSURL URLWithString:urlString];

2.2定义URLRequest,确定网络访问请求,在GET方法中直接用URL即可        

这里的参数,主要是为了防止卡死的情况,在最多读取数据时间2秒内给用户答复,提高用户体验!

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:2.0f];

NSURLResponse *response = nil;

NSError *error = nil;

2.2.1同步请求(应用场景:网银账户的登录)                                            

// 一定要获取到某个网络返回数据后,才能进行下一步操作的场景!

// 发送同步请求,respone&error要带地址的原因就是为了方法执行后,能够方便使用response&error

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

2.2.2异步方法                                                        

[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

// 块代码的内容会在网络访问后执行

// 块代码是预先定义好的代码片段,在满足某个条件时执行的。

}];

3.POST                            

3.1. 定义URL,确定要访问的地址                           

NSURL *url = [NSURL URLWithString:urlString];

3.2. 定义请求,生成数据体添加到请求                         

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

1) 指定网络请求的方法

request.HTTPMethod = @"POST";

2) 生成数据体

 // * 先生成字符串

 NSString *bodyStr = [NSString stringWithFormat:@"username=%@&password=%@", userName, password];

 // * 将字符串转换成NSData

 request.HTTPBody = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];

// 提示:POST请求多用于用户登录,或者上传文件,在实际开发中,“POST请求的参数及地址”需要与公司的后端程序员沟通。

// POST同样具备同步和异步方法,在这里就不做分别实现了。

                                                          清澈Saup