iOS开发中常用第三方库的使用和配置-ASIHttpRequest
所用xcode版本号:4.6.3
2.httpRequest-ASIHttpRequest
ASIHttpRequest-api很好的一个参考网站:http://www.dreamingwish.com/dream-2011/apples-third-party-development-libraries-asihttprequest.html
ASIHttpRequest下载地址:
(1).http://allseeing-i.com/ASIHTTPRequest/
(2).http://github.com/pokeb/asi-http-request/tarball/master
在自己桌面上新建一个文件夹iASIHttpRequest
(1).将asi/Classes/下的所有.h.m(共20个)copy到新建文件夹iASIHttpRequest中
(2).将asi/External/Reachability/下的.h.m(共2个)copy到新建文件夹iASIHttpRequest中
再往后直接用iASIHttpRequest文件夹,省的每次都从不同的文件夹里拽
注:如果工程支持ARC的话,记得将所有ASI的文件加上“-fno-objc-arc”标注
配置过程:
(1).将iASIHttpRequest拖到自己的工程中
(2).添加系统库
CFNetwork.framework
SystemConfiguration.framework
MobileCoreServices.framework
libz.1.2.5.dylib
使用
NSURL *requestURL = [NSURL URLWithString:@"http://192.168.0.17:8080/xxx"]; ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:requestURL]; // set necessary param [request setRequestMethod:@"POST"]; [request addRequestHeader:@"Content-Type" value:@"application/json;charset=utf-8"]; [request addRequestHeader:@"Content-Length" value:[NSString stringWithFormat:@"%d",aData.length]]; [request appendPostData:[aData dataUsingEncoding:NSUTF8StringEncoding]]; [request setDelegate:self]; // [request setTimeOutSeconds:requestTimeOut]; //超时时间 [request startSynchronous]; //异步
主要的代理方法
/// 请求开始 -(void)requestStarted:(ASIHTTPRequest *)request { } /// 请求结束 *重要 -(void)requestFinished:(ASIHTTPRequest *)request { } /// 请求失败 *重要 -(void)requestFailed:(ASIHTTPRequest *)request { } /// 收到请求的头信息 - (void)request:(ASIHTTPRequest *)request didReceiveResponseHeaders:(NSDictionary *)responseHeaders { }
心得笔记
1.队列设置最大连接数maxConcurrentOperationCount为5,此时队列中已存在4条请求,然后往队列中在增加一条request,同时[myQueuego];此时第五条会启动请求,不会影响前4条。