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解析的主要内容,如果未能解决你的问题,请参考以下文章

OC之ReactiveCocoa

iOS开发之Socket实现HTTPS GET请求通过Body传参

RequestForOCFile(网络请求OC文件写入工具)

RequestForOCFile(网络请求OC文件写入工具)

OC HTTPRequest GET和POST请求的代码封装

iOS开发之HTTPS连接GET请求实现Body传递参数