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. HBase学习笔记之HFile格式

    主要看Roger的文档,这里作为文档的补充 HFile的格式-HFile的基本结构 Trailer通过指针找到Meta index.Data index.File info. Meta index保存 ...

  2. 14.6.6 Configuring Thread Concurrency for InnoDB 配置线程并发

    14.6.6 Configuring Thread Concurrency for InnoDB 配置线程并发 InnoDB 使用操作系统线程来处理请求(用户事务) 事务可能执行很多次在它们提交或者回 ...

  3. SQLite: sqlite_master

    SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引.每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的 ...

  4. 悟透Javascript之 原型prototype

    构造函数的Prototype上定义的方法确实可以通过对象直接调用,而且代码是共享的.我表示我不懂.太难理解了,艹.在Javascript中,prototype不但能让对象共享自己的财富,而且proto ...

  5. 深入浅出Node.js (附录D) - 搭建局域NPM仓库

    D.1 NPM仓库的安装 D.1.1 安装Erlang和CouchDB D.1.2 搭建NPM仓库 D.2 高阶应用 D.2.1 镜像仓库 D.2.2 私有模块应用 D.2.3 纯私有仓库 D.3 总 ...

  6. 【原】centos6.5下cdh4.6 Oozie安装

    0.oozie只需安装在一台服务器上,这里选择在namenode上来安装:安装用户为cloud-user 1.安装Oozie包:    sudo yum install -y oozie oozie- ...

  7. jump_ur.php通知模板

    <title>出错啦~~~</title> <script language="javascript" type="text/javascr ...

  8. 用户浏览器关闭cookie处理方法

    方法一: function getSessionId(){ var c_name = "jsessionid"; // alert("cookie:"+docu ...

  9. Winform 中 DesignMode 返回值不正确的问题。

    本文转载:http://blog.csdn.net/sabty/article/details/5325260 以前也曾遇到这样的问题,不过影响不大也没有去详细了解.今天又重新遇到此问题,实在太不便. ...

  10. 一款很不错的html转xml工具-Html Agility Pack

    之前发个一篇关于实现html转成xml的劣作<实现html转Xml>,受到不少网友的关心.该实现方法是借助htmlparser去分解html内容,然后按照dom的结构逐个生成xml字符串. ...