iOS网络通信类库
iOS网络通信类库
iOS网络通信类库:ASIHTTPRequest,AFNetworking,MKNetWorkKIt.
ASIHTTPRequest在ios5.0之后就不在维护了,所以之后主要就是AFNetworking和MKNetworkKit。
AFNetWorking:
适合逻辑简单的应用,或者更适合开发资源尚不丰富的团队,因为AFN的易用性,而这样的应用(或团队)对底层网络控件的定制化要求也非常低。
MKNetworkKit:
1、高度的轻量级,仅仅只有2个主类
2、自主操作多个网络请求
3、更加准确的显示网络活动指标
4、自动设置网络速度,实现自动的2G、3G、wifi切换
5、自动缓冲技术的完美应用,实现网络操作记忆功能,当你掉线了又上线后,会继续执行未完成的网络请求
6、可以实现网络请求的暂停功能
7、准确无误的成功执行一次网络请求,摒弃后台的多次请求浪费
8、支持图片缓冲
9、支持ARC机制
10、在整个app中可以只用一个队列(queue),队列的大小可以自动调整
MKNetWorkKIt的使用方法:
1.下载MKNetWorkKIt主要是下载MKNetWorkKIt这个。
2.新建一个ARC的工程。
3.将MKNetWorkKit这个文件夹拖到你新建的工程中。添加:SystemConfiguration.framework,CFNetwork.framework,Security.framework。
4.在ViewControler里的viewDidLoad方法里写下如下代码:
GET请求的:
1. <span style="font-size:14px;">MKNetworkEngine *engine = [[MKNetworkEngine alloc] initWithHostName:@"192.168.2.176:9502/api"
2. customHeaderFields:nil];
3. MKNetworkOperation *op = [engine operationWithPath:@"login.php?userid=admin&userpwd=123" params:nil httpMethod:@"GET"];
4. [op onCompletion:^(MKNetworkOperation *operation){
5. NSLog(@"request string: %@",[op responseString]);
6. }
7. onError:^(NSError *error){
8.
9. }];
10. [engine enqueueOperation:op];</span>
POST请求:
1. <span style="font-size:14px;"> NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
2. [dic setValue:@"admin" forKey:@"username"];
3. [dic setValue:@"123" forKey:@"password"];
4.
5. MKNetworkOperation *op = [engine operationWithPath:@"user.do" params:dic httpMethod:@"POST"];
6.
7. [op onCompletion:^(MKNetworkOperation *operation) {
8. NSLog(@"post response string :%@",[op responseString]);
9. } onError:^(NSError *error) {
10. DLog(@"%@", error);
11. }];
12.
13. [engine enqueueOperation:op];</span>
强烈注意的地方:
1,github下载了该项目后,如果想运行其demo,一定 要打开MKNetworkKit.xcworkspace该文件,若单独打开,则编译时会提示缺少libMKNetworkKit-iOS.a文件!!!
2,在初始化 MKNetworkEngine的时候,不要加上"http://" 会自动帮你加上的。
iOS网络通信类库的更多相关文章
- iOS 静态类库 打包 C,C++文件及和OC混编
iOS 静态类库 编译 C,C++ 我们都知道,OC 原生支持C, 在 创建的 OC类的 .m 里面,可以直接编写C的代码: 同样 Xcode 也支持 OC ,C++的混编,此时,我们通常把OC创建的 ...
- iOS 静态类库项目的建立与使用
iOS 静态类库项目的建立与使用 新建 Xcode workspace 打开 Xcode , 选择 File -> New -> Workspace , 将 Workspace 命名为 ...
- Method Swizzle黑魔法,修改 ios 系统类库方法 SEL IMP
Method Swizzle黑魔法,修改 ios 系统类库方法 版权声明:本文为博主原创文章,未经博主允许不得转载. 一般来说,系统提供的方法已经足够开发了,但是有的时候有些需求用普通方法不好做. ...
- iOS网络通信http之NSURLConnection
iOS网络通信http之NSURLConnection 移动互联网时代,网络通信已是手机终端必不可少的功能.我们的应用中也必不可少的使用了网络通信,增强客户端与服务器交互.这一篇提供了使用NSURLC ...
- Github上的600多个iOS开源类库
Github上的600多个iOS开源类库,入下图所示,里面有很多资源,学习积累的好资源 地址:http://github.ibireme.com/github/list/ios/
- iOS - 开发类库
开发类库 UI 项目名称 项目信息 1.MJRefresh 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明. ...
- iOS第三方类库汇总【持续更新】
在我们平时开发中会经常使用一些第三方开发的开源类库.这样会有效地提高我们开发项目的效率,在这里我找了好几十个进行一个汇总,供大家参考使用,方便大家在需要的时候能容易找到. UI篇 awesome-io ...
- iOS第三方类库JSPatch(热更新)
---------------------------------------------------------------------------------------------------- ...
- 关于IOS网络通信的学习
最近由于需要在看关于网络通信方面的知识,所以在网上找了找关于网络解释方面的知识.找了半天没有找到一篇能详细解释通讯流程的,心里忍不住就万马奔腾了.没办法,谁让自己想学呢!于是又找了找,觉得没有满意的. ...
随机推荐
- Spring MVC 解读——<context:component-scan/>
转自:http://my.oschina.net/HeliosFly/blog/203149 作者:GoodLoser. Spring MVC 解读---<context:component-s ...
- Git入门简介
1. Git 背景 Git 最初由Linus Torvalds编写,用于 Linux 内核开发的版本控制工具. Git 与常用的版本控制工具 CVS.Subversion 等不同,它采用了分布式版本 ...
- servlet单例多线程
Servlet如何处理多个请求访问? Servlet容器默认是采用单实例多线程的方式处理多个请求的: 1.当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在 ...
- ubuntu 安装配置JDK
总的原则:将压缩包解压至/usr/lib/jdk,设置jdk环境变量并将其修改为系统默认的jdk 1.将jdk-7u5-linux-x64.tar.gz拷贝到/usr/lib/jdk/目录下面,这里如 ...
- Asp.net 字体样式
在页面中使用到字体样式 “微软雅黑“,在静态页面中显示正常,但在asp.net页面中字体无效,此时只需把字体修改为“Microsoft YaHei";
- 支付返回post请求数据
点击返回商家返回的post数据: {"requestBody":"singnType=&version=&businessId=00WGFKB20012& ...
- java多线程编程(3)买票
1,买票非同步版本 http://www.cnblogs.com/anbylau2130/archive/2013/04/17/3025347.html很详细 public class 多线程2 { ...
- Codevs 3304 水果姐逛水果街Ⅰ 线段树
题目: http://codevs.cn/problem/3304/ 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题解 题目描述 D ...
- Excel.Application SaveAs 把excel转换为html
Excel.Application SaveAs 中的第二个参数的值: 可以直接用 10 进制的值代替左边的这些 xl 类型 . 例如:把excel转换为html的js: var oWB = oXL. ...
- c#基础语言编程-编码
字符编码是计算机技术的基础理论,其字符编码有ASCII码.UTF-8.还有就是GB2312,当然这是在中国常用的. 1.ASCII码 在计算机内部所有的信息都是以二进制字符进行存储.用每个二进制位中的 ...