AFNetworking、MKNetworkKit和ASIHTTPRequest对比
之前一直在使用ASIHTTPRequest作为网络库,但是由于其停止更新,iOS7上可能出现更多的问题,于是决定更换网络库。
目前比较流行的网络库主要有AFNetworking和MKNetworkKit,经过一番google后,得出这三个库之间的比较如下:
根据以上对比,AFNetworking虽然相比MKNetworkKit功能要弱一些,但是它的扩展性更强,而且维护者比较多,从长期来看要优于MKNetworkKit。
使用Cookies的代码如下:
目前比较流行的网络库主要有AFNetworking和MKNetworkKit,经过一番google后,得出这三个库之间的比较如下:
| AFNetworking | MKNetworkKit | ASIHTTPRequest |
更新情况 | 维护和使用者相对多 | 维护和使用者相对少 | 停止更新 |
支持iOS和OSX | 是 | 是 | 是 |
ARC | 是 | 是 | 否 |
断点续传 | 否,可通过AFDownloadRequestOperation | 是 | 是 |
同步异步请求 | 只支持异步 | 否 | 是 |
图片缓存到本地 | 否,通过SDURLCache或AFCache | 否 | 否 |
图片缓存到内存 | 是 | 是 | 否 |
后台下载 | 是 | 是 | 是 |
下载进度 | 否,可通过AFDownloadRequestOperation | 是 | 是 |
缓存离线请求 | 否,通过SDURLCache或AFCache | 是 | 否 |
JSON、XML | 是 | 是 | 否 |
Etag | 否 | 是 | 否 |
Cookies | 否 | 否 | 是 |
https | 是 | 是 | 是 |
根据以上对比,AFNetworking虽然相比MKNetworkKit功能要弱一些,但是它的扩展性更强,而且维护者比较多,从长期来看要优于MKNetworkKit。
使用Cookies的代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
- (
void
)saveCookies{
NSData
*cookiesData = [
NSKeyedArchiver
archivedDataWithRootObject: [[
NSHTTPCookieStorage
sharedHTTPCookieStorage] cookies]];
NSUserDefaults
*defaults = [
NSUserDefaults
standardUserDefaults];
[defaults setObject: cookiesData forKey: @
"sessionCookies"
];
[defaults synchronize];
}
- (
void
)loadCookies{
NSArray
*cookies = [
NSKeyedUnarchiver
unarchiveObjectWithData: [[
NSUserDefaults
standardUserDefaults] objectForKey: @
"sessionCookies"
]];
NSHTTPCookieStorage
*cookieStorage = [
NSHTTPCookieStorage
sharedHTTPCookieStorage];
for
(
NSHTTPCookie
*cookie in cookies){
[cookieStorage setCookie: cookie];
}
}
|