`

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,同时[myQueue go]; 此时第五条会启动请求,不会影响前4条。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics