基于AFNetworking封装网络库

阅读原文

基于AFNetworking封装网络库



对于开发人员来说,学习网络层知识是必备的,任何一款App的开发,都需要到网络请求接口。很多朋友都还在使用原生的NSURLConnection一行一行地写,代码到处是,这样维护起来更困难了。

对于使用AFNetworking的朋友来说,很多朋友都是直接调用AFNetworkingAPI,这样不太好,无法做到全工程统一配置。

最好的方式就是对网络层再封装一层,全工程不允许直接使用AFNetworkingAPI,必须调用我们自己封装的一层,如此一来,任何网络配置都可以在这一层里配置好,使用的人无须知道里面在干嘛,只管调用就可以了。

常用接口类型



应用开发过程中,所使用类型通常是GETPOST及上传图片。因此,这里只是对这几种类型提供API

GET接口



这里提供了两个GET请求的API,需要一般情况下GET请求都是直接写一个完整的URL,但是有时候为了参数可读性更强,改成传一个字典过来更容易阅读。

HYBResponseSuccess是响应成功的回调,返回的是字典,外部再转换成模型就可以了。
HYBResponseFail是响应失败的回调,只有一个NSError对象,外部可接收处理。

/*!
 *  @author 黄仪标, 15-11-15 13:11:50
 *
 *  GET请求接口,若不指定baseurl,可传完整的url
 *
 *  @param url     接口路径,如/path/getArticleList?categoryid=1
 *  @param success 接口成功请求到数据的回调
 *  @param fail    接口请求数据失败的回调
 *
 *  @return 返回的对象中有可取消请求的API
 */
+ (HYBRequestOperation *)getWithUrl:(NSString *)url
                            success:(HYBResponseSuccess)success
                               fail:(HYBResponseFail)fail;
/*!
 *  @author 黄仪标, 15-11-15 13:11:50
 *
 *  GET请求接口,若不指定baseurl,可传完整的url
 *
 *  @param url     接口路径,如/path/getArticleList
 *  @param params  接口中所需要的拼接参数,如@{"categoryid" : @(12)}
 *  @param success 接口成功请求到数据的回调
 *  @param fail    接口请求数据失败的回调
 *
 *  @return 返回的对象中有可取消请求的API
 */
+ (HYBRequestOperation *)getWithUrl:(NSString *)url
                             params:(NSDictionary *)params
                            success:(HYBResponseSuccess)success
                               fail:(HYBResponseFail)fail;

POST接口

阅读原文

时间: 2024-08-22 14:11:05

基于AFNetworking封装网络库的相关文章

我对开源C++网络库简单应用总结

网上有篇文章<开源免费的C/C++网络库(c/c++ sockets library) 七剑下天山>,看了之后觉得每个库都不错,这里我具体下载这些库看一下,简单总结一下: 顺便添加一些我找到的网络库:     (1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨平台. http://www.cs.wustl.edu/~schmidt/ACE.html 注:除非特别需要,否则不建议:   (2)Asio Asio基于Boost开发的异步IO库,封装了Socket,简化基于s

谈谈网络库和Retrofit

本文目录如下 网络模块需要具备什么能力 为什么Retrofit是个好选择 Retrofit业务分析 Retrofit技术点 设计模式 一.网络模块需要具备什么能力? 常见的需求下图: 下面解释一下重要的部分. 1.支持缓存 为了让页面快速展现,很多页面需要先加载缓存.通用策略是 1.先加载缓存;2.然后做网络请求3.网络请求成功后刷新页面,并且更新缓存数据 这里涉及到,缓存要存在哪里. 一般也是两种方案: 业务侧做缓存. 每个页面自己维护缓存,一般存在db/sp/文件系统中 网络侧做缓存, 业务

开源免费的C/C++网络库(c/c++ sockets library)

(1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨平台. http://www.cs.wustl.edu/~schmidt/ACE.html   (2)Asio Asio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发. 开源.免费,支持跨平台. http://think-async.com/   (3)POCO POCO C++ Libraries 提供一套 C++ 的类库用以开发基于网络的可移植的应用程序,功能涉及线程.线程同步.文件

开源免费的C/C++网络库(c/c++ sockets library) 七剑下天山

(1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨平台. http://www.cs.wustl.edu/~schmidt/ACE.html   (2)Asio Asio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发. 开源.免费,支持跨平台. http://think-async.com/   (3)POCO POCO C++ Libraries 提供一套 C++ 的类库用以开发基于网络的可移植的应用程序,功能涉及线程.线程同步.文件

【Node.js 自己封装的库 http_parse, libuv】

[Node.js 自己封装的库 http_parse, libuv]   Node.js  介绍:一个网络框架,更多:http://www.oschina.net/p/nodejs 官网:http://nodejs.org/     代码库地址:https://github.com/joyent   http_parser: 介绍:一个解析http协议的东西,有部分内容来自于Nginx 代码:https://github.com/joyent/http-parser     libuv 介绍:基

c++网络库调研

搜索关键词 C++ 网络库 Network Library TCP Server 网络库总结 开源C/C++网络库比较 http://blog.csdn.net/langeldep/article/details/6976120 在开源的C/C++网络库中,常用的就那么几个,在业界知名度最高的,应该是ACE了,不过是个重量级的大家伙,轻量级的有libevent, libev,还有 Boost的ASIO. ACEhttp://www.cs.wustl.edu/~schmidt/ACE.html A

php基于单例模式封装mysql类完整实例_php技巧

本文实例讲述了php基于单例模式封装mysql类.分享给大家供大家参考,具体如下: 类: <?php header("content-type:text/html;charset=utf-8"); //封装一个类 /* 掌握满足单例模式的必要条件 (1)私有的构造方法-为了防止在类外使用new关键字实例化对象 (2)私有的成员属性-为了防止在类外引入这个存放对象的属性 (3)私有的克隆方法-为了防止在类外通过clone成生另一个对象 (4)公有的静态方法-为了让用户进行实例化对象

硅谷杂志:基于内容的网络异常信息过滤

[硅谷网12月3日文]据<硅谷>杂志2012年第18期刊文,虽然网络促进社会经济的发展与进步, 但是在互联网规模的不断扩大下,恶意邮件和不良网络,以及不健康网络内容的传播等都将严重影响网络健康运行.因此,对内容的网络异常信息过滤的安全保护成为人们关注的焦点.通过简要介绍网络异常信息过滤,对网络异常信息过滤模型进行分析,并设计基于内容的网络异常信息过滤系统,同时通过试验与分析证明 其实用的价值. 为了确保网络内容安全,主要是针对数据和社会安全信息的过滤.这种基于内容的网络异常信息过滤可以分为以用

Flex与.NET互操作(一):基于Socket的网络连接

Flash/Flex也支持基于Socket的网络连接 ,服务器端可以是C++,VB,C#,Java等任一语言开发.监听一个网络端口便可以接收到Flash/Flex 开发的客户端的连接. ActionScript 3.0提供了通过Socket连接的方式与服务器端通信.这点是超越传统B/S结构的重要特征.这样使 得网络通信可以即时连接,避免了HTTP协议无状态连接的弊病.ActionScript 3.0使用XMLSocket类进行连接.需要注意的是使用XMLSocket类 进行Socket连接时,不