ASIHTTPRequest 基于CFNetwork , 主要提供了如下功能:
- 封装HTTP Request/Response;
- 支持同步/异步请求, gzip压缩;
- 支持队列(ASINetworkQueue);
- 一些围绕HTTP Request/Response的辅助功能, 比如签证, Cookie, 带宽控制,下载上传相关等等;
- 通过delegate,感知请求状态,你可以依据此进行比如UI updating的操作;
- 作者还加入了对于Amazon S3请求签证封装,RacksSpace Cloud Files的支持;
RestKit基于NSURLConnection, 主要提供了如下功能:
- 支持HTTP Request/Response(同步/异步);
- 支持队列(RKRequestQueue);
- 支持Object(s)映射(相当棒!);
- 支持Core Data;
- 支持JSON/XML解析;
- 服务于RESTful web service相关;
- 嵌入对于Three20相关的支持;
- 同样delegate感知请求状态,做对应处理;
如上的对比,可以看出
- 如果你是使用HTTP Request/Response相关层次的应用,两者都适合你;
- 如果偏RESTful,那么RestKit更适合,Object(s)映射, 支持CoreData是他的亮点;
- RestKit还为你架设好了JSON/XML的解析流程,如果你正好需要,正中下怀;
- RestKit对于Three20 TableView的支持,如果你正好UI选择了Three20,如虎添翼;
- ASIHTTPRequest对于Amazon S3请求签证的封装和RackSpace Cloud Files API的支持省了你不少基于这两家云计算公司上做运用的时间;