菜鸟学习之路——网络学习GET请求与JSON、XML解析

来源:互联网 发布:软件方案培训 编辑:程序博客网 时间:2024/05/18 02:08
1.使用第三方框架AFN,客户端 —— 发送请求 ——  服务器 —— NSData(JSON数据)—— OC对象(字典/ 数组等)—— 客户端

GET(获取服务器的东西)
请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开比如http://www.test.com/login>username=123&pwd=123

2.发送异步请求
系统为reques(发送请求)开启一个子线程进行请求,queue队列是回到主队列执行任务,handler请求完毕后自动调用block  [NSURLConnection sendAsynchronousRequest:<#(NSURLRequest *)#> queue:<#(NSOperationQueue *)#> completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
请求完毕后调用的代码
    }]
因为客户端请求数据需要时间,等请求完后得到数据data,然后回调block内的方法,设置ui界面的东西

3.JSON解析
// 解析服务器返回的JSON数据,JSON数据 -> OC对象

 NSJSONReadingMutableContainers 返回一个可变的对象

NSJSONReadingMutableLeaves  返回一个连节点都可变的对象,通常选这个

NSJSONReadingAllowFragments 返回一个不可变的对象

   [NSJSONSerialization JSONObjectWithData:<#(NSData *)#> options:<#(NSJSONReadingOptions)#> error:<#(NSError *__autoreleasing *)#>]


// OC对象 -> JSON数据

[NSJSONSerialization dataWithJSONObject:<#(id)#> options:<#(NSJSONWritingOptions)#> error:<#(NSError *__autoreleasing *)#>]


JSON解析规律

*{} ——> NSDictionary

*[] ——> NSArray

*”” ——> NSString@“ “

*10 ——> NSNumber @10



4.XML解析

组成部分:1.文档声明 2.元素 3.属性

小文件使用GDataXML第三方库解析XML 

配置过程: 
(1).引入GDataXML(4个文件) 
<arc模式下>.对GDataXML.m增加非arc注释 -fno-objc-arc 
(2).添加系统库 libxml2.dylib 
(3).Head Search Path中添加 /usr/include/libxml2 
(4).Other linker flags中添加 -lxml2 
(5).xml格式



XML大文件解析: //1. 解析XML SAX -- 逐个往下解析

NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data];        

// 2.设置代理

parser.delegate = self;

// 开始解析(同步执行)

[parser parse];

代理方法:

解析到一个元素的开始就会调用

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict

{

}

    

}

0 0
原创粉丝点击