ios开发之oc-网络请求(get)和jison解析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios开发之oc-网络请求(get)和jison解析相关的知识,希望对你有一定的参考价值。
最近用到了jison解析,表示刚开始的时候真的啥都不懂,乱整,弄着弄着就有点通了,慢慢的就有了大概的了解。下面是我对网络请求和jison解析简单使用方法的概述。
1.版本问题。
由于ios版本的进化,ios9之上的系统,对网络传输方面就有了不同以往的要求,9.0之上新增了一个属性App Transport Security Settings,这个属性要求我们在网络请求时必须是HTTPS协议,否则就会出现如下错误:
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
但是对于我们个人开发人员来说,HTTPS并不是那么容易,一般的还是会用到以前的HTTP协议,这时我们就需要配置点东西了
(1)在info.plist文件中(和Main.storyboard同一个文件夹的位置)增加一行“App Transport Security Settings”,类型是NSDictionary
(2)再在新增的这一行里面增加一个BOOL类型的属性“Allow Arbitrary Loads”,将其置为YES。
2.网络请求并将得到的数据解析
因为我只用到了很简单的同步get方法,所以这里就只写这种方法(其他的以后自己掌握了再写)
//构建网络请求的字符串 NSString * urlString=@"*******"; // 如果网址中存在中文,进行URLEncode NSString *newUrlStr = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // 构建网络URL对象, NSURL NSURL *url = [NSURL URLWithString:newUrlStr]; // 创建网络请求 NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10]; // 创建同步链接 NSURLResponse *response = nil; NSError *error = nil; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; if(data.length>0) { //将得到的数据转化为相应的对象(查看jison格式后确定) NSDictionary *result=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; }
以上就是请求并得到数据,然后解析出来的过程。
其中,因为中文的编码方式经常出问题,所以我们稳当的指定其编码方式。
jison格式一般有字典,数组的形式,可以直接打开连接查看jison格式,然后再确定其转化为什么。
3.附加其他内容
在此次jison解析中,我用到了一些自认为有帮助的知识,记一下,以后看的到。
NSDictionary快速取值:dictionary[@"键名"];
NSNumber比较:
NSNumber *state=dictionary[@"数量"]; if([state isEqualToNumber:[NSNumber numberWithInt:10]]==YES)//数量等于10 { }
以上是关于ios开发之oc-网络请求(get)和jison解析的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发之Socket实现HTTPS GET请求通过Body传参
RequestForOCFile(网络请求OC文件写入工具)
RequestForOCFile(网络请求OC文件写入工具)