弃用的同步get和post请求
2024-08-27 00:17:41
#import "ViewController.h"
#import "Header.h" @interface ViewController () <NSURLConnectionDataDelegate> /**
* 用来存储数据
*/
@property (nonatomic, strong) NSMutableData *resultData; @property (nonatomic, strong) NSMutableArray *dataArray; @end @implementation ViewController // 懒加载
- (NSMutableArray *)dataArray { if (!_dataArray) {
_dataArray = [NSMutableArray array];
}
return _dataArray;
} - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
} #pragma mark - 同步get请求
- (IBAction)getSynchronousRequest:(UIButton *)sender { // 1.创建URL
NSURL *url = [NSURL URLWithString:GET_URL]; // 2.根据url创建具体的请求(使用缓存策略)
// 第一个参数:统一资源定位符URL
// 第二个参数:缓存的策略(枚举值)
/*
NSURLRequestUseProtocolCachePolicy//(基础策略)
NSURLRequestReloadIgnoringLocalCacheData//(忽略本地缓存)
NSURLRequestReturnCacheDataElseLoad//(首先使用缓存,如果没有本地缓存,才从原地址下载)
NSURLRequestReturnCacheDataDontLoad//(使用本地缓存,从不下载,如果本地没有缓存,则请求失败,此策略多用于离线操作)
NSURLRequestReloadIgnoringLocalAndRemoteCacheData//(无视任何缓存策略,无论是本地的还是远程的,总是从原地址重新下载)
NSURLRequestReloadRevalidatingCacheData//(如果本地缓存是有效的则不下载,其他任何情况都从原地址重新下载)
*/
// 第三个参数:设置延迟时间,如果超时请求终止
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:]; // 3.链接服务器【NSURLConnection在iOS9之后被弃用,在以后的开发中很少见】
// 参数1:请求对象
// 参数2:存储一些网络的请求信息【一般为包体,一般设置为nil】
// 参数3:错误信息
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; // 4.进行json数据解析
NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@", resultDic); } #pragma mark - 同步post请求
- (IBAction)postSynchronousRequest:(UIButton *)sender { // 1.创建url
NSURL *url = [NSURL URLWithString:POST_URL]; // 2.创建网路请求【post请求必须初始化为可变请求,因为稍后要进行一些内容的设置】
NSMutableURLRequest *mutableRequest = [NSMutableURLRequest requestWithURL:url]; // 2.5.设置body
// 创建一个连接字符串(这个内容在以后的开发中接口文档都有标注)
NSString *dataStr = POST_BODY; // 对连接字符串进行编码【这一步千万不能忘记】
NSData *postData = [dataStr dataUsingEncoding:NSUTF8StringEncoding]; // 设置请求格式为post请求【在这里POST必须大写】
[mutableRequest setHTTPMethod:@"POST"]; // 设置请求体(body)
[mutableRequest setHTTPBody:postData]; // 3.链接服务器
NSData *data = [NSURLConnection sendSynchronousRequest:mutableRequest returningResponse:nil error:nil]; // 4.解析数据
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@", dic); } @end
最新文章
- 3.JAVA之GUI编程Frame窗口
- onFocus=";this.blur()";的解释
- Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程
- ERROR 2003 (HY000): Can&#39;t connect to MySQL server on &#39;localhost&#39; (10061)
- 读书笔记 effective c++ Item 43 了解如何访问模板化基类中的名字
- PID控制示例C编程
- Zookeeper安装使用
- 【读书笔记】iOS-访问网络
- mxnet:背景介绍
- Linux多进程和多线程的一次gdb调试实例
- day 21 封装,多态,类的其他属性
- [Windows Azure] Monitoring SQL Database Using Dynamic Management Views
- 有关padding的二三事~~
- (动态)代理于HOOK的区别于关系
- C# 将MSMQ消息转换成Json格式
- UML-6.2-用例-用例模型/用例/场景关系
- 20145222黄亚奇《网络对抗》 逆向及BOF进阶实践学习总结
- C#Thread学习
- C# 调接口
- Apache 403 错误。。
热门文章
- C#基础总结之六 DataTable (临时表/数据源) 和Datatable 名片练习
- 认识SuperSocket 1.6.4
- how to create a framework for ios . cool!
- 【转载】dirs、pushd、popd指令
- [python基础知识]python内置函数map/reduce/filter
- Android Logcat 封装类
- JAVA魔法堂:读取.properties配置文件
- servlet中的细节
- “康园圈--互联网+校园平台“项目之sprint2
- Oracle基础 各种语句的定义格式