码迷,mamicode.com
首页 > 移动开发 > 详细

ios开发 ASIHTTPRequest类库

时间:2015-05-26 22:48:51      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

ASIHTTPRequest 是一个直接在CFNetwork上做的开源项目,提供了一个比官方更方便更强大的HTTP网络传输的封装。它的特色功能如下:
1,下载的数据直接保存到内存或文件系统里
2,提供直接提交(HTTP POST)文件的API
3,可以直接访问与修改HTTP请求与响应HEADER
4,轻松获取上传与下载的进度信息
5,异步请求与队列,自动管理上传与下载队列管理机
6,认证与授权的支持
7,Cookie
8,请求与响应的GZIP
9,代理请求

1, 添加ASIHTTPRequest相关文件到Xcode项目中,所需文件列表如下:ASIHTTPRequestConfig.h    ASIHTTPRequestDelegate.h    ASIProgressDelegate.h   ASICacheDelegate.h   ASIHTTPRequest.h    ASIHTTPRequest.m   ASIDataCompressor.h   ASIDataCompressor.m   ASIDataDecompressor.h    ASIDataDecompressor.m   ASIFormDataRequest.h    ASIInputStream.h   ASIInputStream.m   ASIFormDataRequest.m   ASINetworkQueue.h   ASINetworkQueue.m    ASIDownloadCache.h   ASIDownloadCache.m   ASIAuthenticationDialog.h   ASIAuthenticationDialog.m   Reachability.h (在源码的 External/Reachability 目录下)    Reachability.m (在源码的 External/Reachability 目录下)
2,添加类库CFNetwork.framework   SystemConfiguration.framework,   MobileCoreServices.framework, libz.1.2.5.dylib这几个类库
3,导入头文件  #import “ASIHTTPRequest.h”

创建一个同步请求
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request startSynchronous];
NSError *error = [request error];
if (!error) {NSString *response = [request responseString];
 
一般情况下,应该优先使用异步请求代替同步请求,当在主线程中使用ASIHTTPRequest同步请求,应用程序的界面会锁定,无法进行任何操作,直到请求完成。
创建一个异步请求
 
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
 
- (void)requestFinished:(ASIHTTPRequest *)request{
// 当以文本形式读取返回内容时用这个方法
NSString *responseString = [request responseString];
// 当以二进制形式读取返回内容时用这个方法
NSData *responseData = [request responseData];
}
- (void)requestFailed:(ASIHTTPRequest *)request{
NSError *error = [request error];
}


如果程序启动了ARC,需要对文件设置-fno-objc-arc
 

ARC 是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编 译器完成了。该机制在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机制。简单地理解ARC,就是通过指定的语法,让编译器(LLVM 3.0)在编译代码时,自动生成实例的引用计数管理部分代码。有一点,ARC并不是GC,它只是一种代码静态分析(Static Analyzer)工具。

那么在xCode中经常需要导入一些外来的代码文件,如果导入的文件使用了ARC机制而你的当前项目没有使用ARC,那么xCode会给出警告,或者报错。我们该如何处理这些问题呢:

查看ARC 是否开启,"Objective-C Automatic Reference Counting"选项为YES,表示开启。

点击项目导航文件--> 选中Targets--> 选择 Build Phases --> 展开Compile Sources

技术分享

这个时候,我们看到第二列的名称为:Compiler Flags

双击你所要使用ARC的文件,并输入 -fobjc-arc,

技术分享

技术分享

那么现在这个文件就可以在编译时使用ARC机制进行编译了。

同上,如果想让使用ARC机制的代码不使用ARC机制,只需要输入 -fno-objc-arc

 

ios开发 ASIHTTPRequest类库

标签:

原文地址:http://www.cnblogs.com/huangzs/p/4531682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!