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条。

相关推荐