#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

最新文章

  1. 3.JAVA之GUI编程Frame窗口
  2. onFocus=&quot;this.blur()&quot;的解释
  3. Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程
  4. ERROR 2003 (HY000): Can&#39;t connect to MySQL server on &#39;localhost&#39; (10061)
  5. 读书笔记 effective c++ Item 43 了解如何访问模板化基类中的名字
  6. PID控制示例C编程
  7. Zookeeper安装使用
  8. 【读书笔记】iOS-访问网络
  9. mxnet:背景介绍
  10. Linux多进程和多线程的一次gdb调试实例
  11. day 21 封装,多态,类的其他属性
  12. [Windows Azure] Monitoring SQL Database Using Dynamic Management Views
  13. 有关padding的二三事~~
  14. (动态)代理于HOOK的区别于关系
  15. C# 将MSMQ消息转换成Json格式
  16. UML-6.2-用例-用例模型/用例/场景关系
  17. 20145222黄亚奇《网络对抗》 逆向及BOF进阶实践学习总结
  18. C#Thread学习
  19. C# 调接口
  20. Apache 403 错误。。

热门文章

  1. C#基础总结之六 DataTable (临时表/数据源) 和Datatable 名片练习
  2. 认识SuperSocket 1.6.4
  3. how to create a framework for ios . cool!
  4. 【转载】dirs、pushd、popd指令
  5. [python基础知识]python内置函数map/reduce/filter
  6. Android Logcat 封装类
  7. JAVA魔法堂:读取.properties配置文件
  8. servlet中的细节
  9. “康园圈--互联网+校园平台“项目之sprint2
  10. Oracle基础 各种语句的定义格式