IOS AFNetworking简介及使用
转:http://www.it165.net/pro/html/201405/13099.html
一AFNetworking简介AFNetworking是一个在IOS开发中使用非常多网络开源库,适用于iOS以及Mac OS X. 它构建于在(apple ios开发文档)NSURLConnection, NSOperation,以及其他熟悉的Foundation技术之上。它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松.
AFURLConnectionOperation:继承自 NSOperation 实现了NSURLConnection 的代理方法.AFHTTPRequestOperation: 继承自 AFURLConnectionOperation的子类,当request请求使用的协议为HTTP和HTTPS时使用,它封装了用于决定request是否成功的状态码和内容类型.AFJSONRequestOperation:
继承自AFHTTPRequestOperation,用于下载和处理json response数据.AFXMLRequestOperation:继承自AFHTTPRequestOperation,用于下载和处理xml response数据.AFPropertyListRequestOperation:继承自AFHTTPRequestOperation,用于下载和处理property list response数据.AFHTTPClient:是一个封装了基于http协议的网络应用程序的公共交流模式.包含 1.发起基于根路径的使用基本的url相关路径来只做request
2.为request自动添加设置http headers. 3.使用http 基础证书或者OAuth来验证request 4.为由client制作的requests管理一个NSOperationQueue 5.从NSDictionary生成一个查询字符串或http bodies. 6.从request中构建多部件7.自动的解析http response数据为相应的表现数据8.在网络可达性测试用监控和响应变化.
注: 官方使用文档说明: http://cocoadocs.org/docsets/AFNetworking/1.3.0/
二 加载到开发环境中
1.下载AFNetworking https://github.com/AFNetworking/AFNetworking
2.解压后将AFNetWorking文件夹拖入项目工程中去
3.添加SystemConfiguration和MobileCoreServices 框架
4.在预编译头文件中添加相关的头文件
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <MobileCoreServices/MobileCoreServices.h>
#endif
注意:该类库需要在 ARC 的环境下 ,在非ARC 的工程中 ,添加 -fobjc-arc
四 使用代码 详见: https://github.com/ZhangzheBJUT/IOSProject/tree/master/NetworkTool ZZUtilNetWork.h和ZZUtilNetWork.m是对AFNetworking使用简单封装。
五 小结AFNetworking的基础部分是 AFURLConnectionOperation,它是一个 NSOperation subclass,网络部分由 NSURLConnection 完成,实现了 NSURLConnection 相关的代理方法,然后利用 NSOperation 的 state (isReady→isExecuting→isFinished) 变化来进行网络控制。网络请求是在一个指定的线程(networkRequestThread)完成。
AFURLConnectionOperation 是一个很纯粹的网络请求 operation,可以对他进行 start/cancel/pause/resume 操作,可以获取对应的 NSURLRequest 和 NSURLResponse 数据。支持 NSInputStream/NSOutputStream,提供了 uploadPress 和 downloadProgress 以方便其他使用。
AFHTTPRequestOperation 是 AFURLConnectionOperation 的子类,针对 HTTP+HTTPS 协议做了一层封装,比如 statusCode、Content-Type 等,添加了请求成功和失败的回调 block,提供了 addAcceptableContentTypes: 以方便上层使用。
IOS AFNetworking简介及使用的更多相关文章
- 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
一. iOS 项目简介 1. iOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类 ...
- IOS AFNETWORKING POST
IOS AFNETWORKING POST 请求 #pragma mark post 请求 // 获取 url 路劲,不带参数 NSString *requestUrl = [[url compone ...
- 【转】GitHub 排名前 100 的安卓、iOS项目简介
GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...
- 2016年GitHub 排名前 100 的安卓、iOS项目简介(收藏)
排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者 ...
- iOS | AFNetworking封装
为大家分享一个IOS处理网络请求,网络上传,网络下载等功能全面的一个第三方框架-AFNetworking,这是一个使用非常方便的网络框架. 最新的版本是基于NSURLSession,原来的NSURLC ...
- iOS - AFNetworking 网络请求
前言 在 iOS 开发中,一般情况下,简单的向某个 Web 站点简单的页面提交请求并获取服务器的响应,用 Xcode 自带的 NSURLConnection 是能胜任的.但是,在绝大部分下我们所需要访 ...
- iOS AFNetworking的使用
转:http://www.cnblogs.com/lookenwu/p/3927897.html AFNetworking几乎是iOS上最常用的HTTP库了,AFNetworking也确实用起来简单, ...
- iOS AFNetWorking源码详解(一)
来源:Yuzeyang 链接:http://zeeyang.com/2016/02/21/AFNetWorking-one/ 首先来介绍下AFNetWorking,官方介绍如下: AFNetworki ...
- iOS AFNetWorking下得Basic Auth认证请求方式
我新入职了一家公司,做了一个项目,服务器的大哥说他采用的是Basic Auth认证请求方式,一般我们用的都是OAuth的认证方式,下面我们就对比一下这两种认证方式 百度百科得到如下 Basic Aut ...
随机推荐
- MonoBehaviour.StopCoroutine
MonoBehaviour.StopCoroutine Description Stops all coroutines named methodName running on this behavi ...
- linux源代码阅读笔记 get_free_page()代码分析
/* 34 * Get physical address of first (actually last :-) free page, and mark it 35 * used. If no fre ...
- ifram一些常用的知识点
本文摘自:http://www.cnblogs.com/duankaige/archive/2012/09/20/2695012.html iframe的调用包括以下几个方面:(调用包含html ...
- POJ1860Currency Exchange(SPFA)
http://poj.org/problem?id=1860 题意: 题目中主要是说存在货币兑换点,然后现在手里有一种货币,要各种换来换去,最后再换回去的时候看能不能使原本的钱数增多,每一种货币都有 ...
- 【转载】Ssh整合开发介绍和简单的登入案例实现
Ssh整合开发介绍和简单的登入案例实现 Ssh整合开发介绍和简单的登入案例实现 一 介绍: Ssh是strtus2-2.3.1.2+ spring-2.5.6+hibernate-3.6.8整合的开 ...
- lintcode :Remove Duplicates from Sorted List 删除排序链表中的重复元素
题目: 删除排序链表中的重复元素 给定一个排序链表,删除所有重复的元素每个元素只留下一个. 您在真实的面试中是否遇到过这个题? 样例 给出1->1->2->null,返回 1-& ...
- JRE下的rt.jar、tools.jar
JRE下的rt.jar: 这个文件是极为重要的一个文件,rt是runtime的缩写,即运行时的意思.是java程序在运行时必不可少的文件. 里面包含了java程序员常用的包,如java.lang,ja ...
- Maven中心仓库
当你使用Maven构建一个项目,Maven会检查你的pom.xml文件,找出需要下载的依赖包.首先它会到本地仓库查找所需的文件,如果没找到,就到默认的中心仓库(这是新的http://search.ma ...
- PHP的线程安全与非线程安全版本的区别
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍. ...
- HS-T912 adb 连接配置
手机丢了,花300大洋买的新手机阿...不讨论好不好用,只说怎么用. 安装驱动 linux 跳过 插上电脑,在__通知__里面打开__USB 连接__,会弹出__USB 设置__对话框. 选择__海信 ...