AFNetWorking 简单介(XML,JSON解析和判断网络状态

//AFNetWorking 当下最流行的数据请求方法 里面不仅包含数据请求还包含数据解析
//包含的数据请求就是对系统类NSURLConnection的封装
//数据解析(NSJSONSerialization、XMLParser)

//AFNetworking 下至兼容ios6.0 以及block语法 arc

//通过AFNetWorking请求json数据 并解析

//<1>创建http请求操作管理者对象

AFHTTPRequestOperationManager * manager =[AFHTTPRequestOperationManager manager];

//<2>设置请求对象向服务器请求的数据类型(json还是xml)

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"];

========也可以用============

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", @"text/xml", nil];

//<3>开始数据请求并且解析
        [manager GET:kJSONUrlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
            //解析数据
            //json
            if([responseObject isKindOfClass:[NSDictionary class]])
            {
                NSLog(@"%@",responseObject);
            }
            //xml 
            else if([responseObject isKindOfClass:[NSData class]])
            {
                NSLog(@"%@",responseObject);
            }
           
        } failure:^(AFHTTPRequestOperation *operation, NSError *error)
        {
            NSLog(@"error:%@",error.description);
        }];
       
    }

======当数据源为XML时我们用GData(自带的比较耗时)==============

//通过AFNetworking请求xml数据并解析

//<1>创建http请求操作管理对象

AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];

//<2>设置请求的数据类型
        manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/xml"];
       
        //<3>xml数据解析 默认使用的XMLParser进行数据解析 这种解析方式比较复杂 一般的时候我们解析xml数据都是第三方库GData 所以此处需要关闭AFNetworking提供的xml数据解析的方法
        manager.responseSerializer = [AFHTTPResponseSerializer serializer];
       
        //<4>xml数据开始请求并解析
        [manager GET:kXMLUrlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
            if([responseObject isKindOfClass:[NSData class]])
            {
                //使用GData解析xml数据
                //<1>将所有数据解析出来方在内存中
                GDataXMLDocument * document = [[GDataXMLDocument alloc]initWithData:responseObject encoding:NSUTF8StringEncoding error:nil];
                //<2>使用xpath获取请求的内容
                NSArray * titlesArr = [document nodesForXPath:@"/doc/focus/frame/title" error:nil];
                //<3>将节点的内容打印出来
                for(GDataXMLElement * element in titlesArr)
                {
                    NSLog(@"title:%@",element.stringValue);
                }
            }
           
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"error:%@",error.description);
        }];

//===============判断当前网络================

//<1>创建http请求操作管理对象

AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];
       
        //-------------扩展------------------
        [manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status)
        {
            if(status == AFNetworkReachabilityStatusReachableViaWiFi)
            {
                NSLog(@"wifi");
            }
            else if (status == AFNetworkReachabilityStatusReachableViaWWAN)
            {
                NSLog(@"3G/GPRS");
            }
            else if (status == AFNetworkReachabilityStatusNotReachable)
            {
                NSLog(@"无网络连接");
            }
        }];

[manager.reachabilityManager startMonitoring];//获取当前网络

时间: 2024-10-12 11:13:21

AFNetWorking 简单介(XML,JSON解析和判断网络状态的相关文章

iOS XML/JSON解析

<a target=_blank href="http://download.csdn.net/detail/vaercly/7908319">点击打开下载链接iOS,XML/JSON解析</a> // FInterPreterVC.m // FInterpreter // // Created by lanouhn on 14-9-11. // Copyright (c) 2014年 [email protected] 陈聪雷. All rights rese

ios webservice编程:soap封装调用,返回xml,json解析

一.简介 webservice调用,包括soap请求与响应,返回(xml,json)解析. soap请求与响应:ios webservice+soap编程 xml,json解析:ios XML,JSON,数组解析并转换成NSMutableArray(List<class>) 二.项目 完整项目:点击下载 三.效果 soap请求与响应: xml,json解析:    

UI学习笔记---第十六天XML JSON解析

一.解析的基本概念 从事先规定好的格式中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据 常见解析方式XML解析JSON解析 二.XML:可扩展标记语言 XML数据格式的功能:数据交换 web服务  内容管理  用作配置文件 一对标签称为一个节点  节点可以包含节点   没有子节点叫叶子节点  只有一个根节点  节点可以相互嵌套 三.进行XML解析时使用到的SAX工具 SAX:Simple API for XML  基于事件驱动的解析方式,逐行解析数据.(

Android判断网络状态方法详解

Android 判断网络状态这一应用技巧在实际应中是比较重要的.那么,在Android操作系统中,如何能够正确的判断我们所连接的网络是否断开恩?今天我们就针对这一应用技巧进行一个详细的分析. 1.public class ConnectionChangeReceiverextends BroadcastReceiver 2.{ [email protected] 4.public void onReceive( Context context,Intent intent ) 5.{ 6.Conn

XML/JSON解析

JSON: 什么是JSON: 1,json是一种轻量级的数据格式,一般用于数据交互: 2,服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack","rose","jim"]} 标准JSON格式的注意点:key必须

android——判断网络状态

平常我们玩qq的时候我们没联网 ,qq上面回显示"网络连接不给力,请检查网络连接"那么它是 通过什么方式判断网络是否连接的呢? 下面将写个案例展示如何检查网络连接状态的 由于我们这里只是测试下所以我们的项目只是简单的实现点击一个按钮判断设备网络是否连接如果 网络已连接则弹出一个消息框提示"网络通畅"反之则提示"您的网络真的连接 了吗" 1.新建一个android项目textNet(设备版本为4.4.2) 2.打开activity_main.xml

Android Network -------------------判断网络状态(网络的连接,改变,和判断2G/3G/4G)

现在app大多都需要从网络上获得数据.所以访问网络是在所难免.但是再访问网络之前,我们应该先做一下网络的状态判断.其实在访问网络之前我们要做一些状态判断,对应一些状态判断来做处理,并不是直接使用Http访问网络即可.很多人在开发就经常把网络这块直接跳过,直接访问网络,可以一断网,各种体验效果不好,不是说app没法用,只是体验效果差.还有,就是我们可能为用户考虑,因为现在一般连网是wifi和手机流量,都知道后者收费是比较高的.假如我们的app加载的图片或者有大的数据下载操作,可是用户的本意是要是在

判断网络状态

//判断网络是否连接 public static boolean Netisavilable(Context context){ //获得网络管理 ConnectivityManager cManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); //获得网络详情 NetworkInfo networkInfo=cManager.getActiveNetworkInfo(); if(

Android - 判断网络状态

Android手机同时支持WIFI和3G, 判断网络连接, 判断网络类型(WIFI或3G). 权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 判断网络连接 /** * 判断网络是否可用, 在使用网络请求是预先使用此方法进行检查, 以节省资源. * * @return 可用状态 */ public static boolean isNetAvailable() { C