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 ...
随机推荐
- uva 10912
dp 记忆化搜索 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> ...
- Linux重启inotify配置max_user_watches无效被恢复默认值8192的正确修改方法
Linux下Rsync+inotify-tools实现数据实时同步中有一个重要的配置就是设置Inotify的max_user_watches值,如果不设置,当遇到大量文件的时候就会出现出错的情况. 一 ...
- linux源代码阅读笔记 八进制
c语言中,众所周知,以0x开头的数是16进制数.例如 0x8FFF 然而较少使用的是八进制数.它以0开头.例如 01234
- Corner case
A corner case (or pathological case) is a problem or situation that occurs only outside of normal op ...
- hdu 1172 猜数字(暴力枚举)
题目 这是一道可以暴力枚举的水题. //以下两个都可以ac,其实差不多一样,呵呵 //1: //4 wei shu #include<stdio.h> struct tt { ],b[], ...
- [STL]单词转换
如果单词转换文件的内容是: 'em themcuz becausegratz grateful i Inah nopos ...
- POJ1013Counterfeit Dollar
这个题主要是判断硬币真假,可能轻可能重,称三次,要输出哪枚是假币,还要输出是重的还是轻的,所以最主要的是标记变量 #include<cstdio> #include<cstring& ...
- maven 命令备忘
1. 打包时 不执行测试 mvn package -Dmaven.test.skip=true
- lintcode:Search Insert Position 搜索插入位置
题目: 搜索插入位置 给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引.如果没有,返回到它将会被按顺序插入的位置. 你可以假设在数组中无重复元素. 样例 [1,3,5,6],5 → 2 ...
- Git教程之时光穿梭(3)
我们已经成功地添加并提交了一个readme.txt文件,现在我们继续修改readme.txt文件,改成如下内容: