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网络通信类库的更多相关文章

  1. iOS 静态类库 打包 C,C++文件及和OC混编

    iOS 静态类库 编译 C,C++ 我们都知道,OC 原生支持C, 在 创建的 OC类的 .m 里面,可以直接编写C的代码: 同样 Xcode 也支持 OC ,C++的混编,此时,我们通常把OC创建的 ...

  2. iOS 静态类库项目的建立与使用

    iOS 静态类库项目的建立与使用   新建 Xcode workspace 打开 Xcode , 选择 File -> New -> Workspace , 将 Workspace 命名为 ...

  3. Method Swizzle黑魔法,修改 ios 系统类库方法 SEL IMP

    Method Swizzle黑魔法,修改 ios 系统类库方法   版权声明:本文为博主原创文章,未经博主允许不得转载. 一般来说,系统提供的方法已经足够开发了,但是有的时候有些需求用普通方法不好做. ...

  4. iOS网络通信http之NSURLConnection

    iOS网络通信http之NSURLConnection 移动互联网时代,网络通信已是手机终端必不可少的功能.我们的应用中也必不可少的使用了网络通信,增强客户端与服务器交互.这一篇提供了使用NSURLC ...

  5. Github上的600多个iOS开源类库

    Github上的600多个iOS开源类库,入下图所示,里面有很多资源,学习积累的好资源 地址:http://github.ibireme.com/github/list/ios/

  6. iOS - 开发类库

    开发类库   UI 项目名称 项目信息 1.MJRefresh 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明. ...

  7. iOS第三方类库汇总【持续更新】

    在我们平时开发中会经常使用一些第三方开发的开源类库.这样会有效地提高我们开发项目的效率,在这里我找了好几十个进行一个汇总,供大家参考使用,方便大家在需要的时候能容易找到. UI篇 awesome-io ...

  8. iOS第三方类库JSPatch(热更新)

    ---------------------------------------------------------------------------------------------------- ...

  9. 关于IOS网络通信的学习

    最近由于需要在看关于网络通信方面的知识,所以在网上找了找关于网络解释方面的知识.找了半天没有找到一篇能详细解释通讯流程的,心里忍不住就万马奔腾了.没办法,谁让自己想学呢!于是又找了找,觉得没有满意的. ...

随机推荐

  1. lua metatable和metamethod元表和元方法

    Lua中提供的元表是用于帮助Lua数据变量完成某些非预定义功能的个性化行为,如两个table的相加.假设a和b都是table,通过元表可以定义如何计算表达式a+b.当Lua试图将两个table相加时, ...

  2. 低压差稳压器AMS1585

    (1)高效线性稳压. (2)输出高达4.6A,最高输入电压15V,推荐最低压差1.5V(最低1.35V),最大压差12V. (3)两种封装:TO220(直插式),TO230(贴片). 典型电路如下图所 ...

  3. 南京Uber优步司机奖励政策(1月18日~1月24日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  4. Redis教程03——Redis 发布/订阅(Pub/Sub)

    Pub/Sub 订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者).而是发布的消息分到不同的频道,不需要知道什么样的订阅者 ...

  5. 使用Calendar获取近三年的财务信息

    1.

  6. 外显子分析:cutadapt,去除序列adapter详细解析

    外显子测序时带有adapt接头,因此我们需要去除adapt接头,cutadapt的作用是去除adapt接头,一般用到如下命令: cutadapt -a AACCGGTT -o output.fastq ...

  7. 配置java软件

    到官网下载了jdk和jre的安装包 配置时发现javac显示 "javac不是内部或外部命令,等等一些的问题" 上百度搜索后,发现是win10系统配置path的时候需要写绝对路径而 ...

  8. ServerVersion 引发了“System.InvalidOperationException”类型的异常

    遇到这样一个问题:添加互评信息,断点调试,跳转到BLL层后就直接跳到SqlHelper中弹出错误,说:未将对象设置引用到实例等.还请人帮忙调试代码,调试半天发现抽象工厂并没成功完成反射,奇怪的是:将出 ...

  9. python 3Des 加密

    import hashlib; from Crypto.Cipher import DES3 import base64 def create_key(sk): r=hashlib.md5(sk).d ...

  10. LINUX 性能 测试 优化工具

    监控 测试 优化