zoukankan      html  css  js  c++  java
  • 请求json和xml数据时的方式

    当请求xml数据时,直接通过NSMutableData接收后解析,

    NSURL *url = [NSURL URLWithString:PATH];

        _receiveData = [[NSMutableData alloc] initWithContentsOfURL:url];

        GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:_receiveData encoding:NSUTF8StringEncoding error:nil];

        GDataXMLElement *root = [doc rootElement];

    而请求的是json数据时,需要使用NSURLConnection的对象和协议方法来异步请求数据,该方法是苹果系统提供的.

    NSURL *url=[NSURL URLWithString:path];

    将请求的服务器地址封装在一个请求对象

    NSURLRequest *request=[NSURLRequest requestWithURL:url];

    创建一个对象,自动将比较费时的请求数据的操作启动一个子线程去执行,数据请求到后通过协议方法回到UI

    _urlConnection=[[NSURLConnection alloc]initWithRequest:request delegate:self];

    协议方法

    //当请求过程中出现错误(没有网络,请求超时。。。)时执行此协议方法

    -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;

    接收到服务器响应请求时执行的协议方法,response是服务器对客户端请求的一个响应对象

    -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

    {

        //响应应该是NSHTTPURLResponse类型的

        NSHTTPURLResponse *res=(NSHTTPURLResponse*)response;

        //获取响应的头部

        NSLog(@"%@",res.allHeaderFields);

        //响应的状态码:200成功,404资源不存在

        NSLog(@"%ld",res.statusCode);

        //清空缓冲区的数据

        [_receiveData setLength:0];

    }

    //请求到数据data,如果数据量很大,该方法会被调用多次

    -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

    {

        [_receiveData appendData:data];

    }

    //请求结束,数据接收完毕调用此协议方法

    -(void)connectionDidFinishLoading:(NSURLConnection *)connection

    {

        //1、解析数据

        NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:_receiveData options:NSJSONReadingMutableContainers error:nil];

        NSArray *array=dict[@"users"];

        [_dataArray addObjectsFromArray:array];

        //2、刷新界面

        [self.tableView reloadData];

    }

    http://www.cnblogs.com/PaulpauL/ 版权声明:本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    致远OA-A8协同管理软件无需登录getshell漏洞
    WordPress插件NextGEN Gallery <= 3.2.2 RCE漏洞利用(需要登录)
    Coremail邮件系统配置文件泄露漏洞
    CVE-2019-12735 VIM命令执行漏洞利用
    分享一个乌云Drops文章在线浏览的网站
    Ubuntu、Debian安装Docker CE
    一些好用的网络渗透工具和查询平台
    CVE-2017-11882 Office内存损坏漏洞利用
    Cobalt Strike入门教程-通过exe木马实现远控
    Jfinal cms前台评论XSS漏洞分析
  • 原文地址:https://www.cnblogs.com/PaulpauL/p/4935291.html
Copyright © 2011-2022 走看看