ASIHTTPRequest的使用——队列请求
来源:互联网 发布:手机摇骰子软件 编辑:程序博客网 时间:2024/05/18 03:59
队列请求提供了一个对异步请求更加精准丰富的控制。
请求队列上下文
a、可以设置一个上下文(userInfo)到request对象中,当请求响应完后可以通过访问request对象的userInfo获取里面的信息
b、为每一个请求实例设置不同的setDidFinishSelector / setDidFailSelector的回调方法
提供的更多的回调方法如下:
a、requestDidStartSelector,请求发起时会调此方法,你可以在此方法中跟据业务选择性的设置request对象的deleaget。
b、requestDidReceiveResponseHeadersSelector,当接受完响应的Header后设计此方法,这个对下载大数据的时候相当有用,你可以在方法里做更多业务上的处理。
c、requestDidFinishSelector,请求并响应成功完成时调用此方法
d、requestDidFailSelector,请求失败
e、queueDidFinishSelector,整个队列里的所有请求都结束时调用此方法。
注意:添加到队列中其实并不能执行请求,只有调用[queue go]才会执行;一个正在运行中的队列,并不需要重复调用[queue go]。
如,可以设置在队列中,同步请求的连接数。
往队列里添加的请求实例数大于maxConcurrentOperationCount时,请求实例将被置为等待,直到前面至少有一个请求完成并出列才
被放到队列里执行。
也适用于当我们有多个请求需求按顺序执行的时候(可能是业务上的需要,也可能是软件上的调优),仅仅需要把maxConcurrentOperationCount 设为“1”。
- (void)grabURLInTheBackground:(id)sender{if (![self queue]){// 创建任务队列[self setQueue:[[[NSOperationQueue alloc] init] autorelease]];} NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];// 设置代理[request setDelegate:self];// 设置实现方法[request setDidFinishSelector:@selector(requestDone:)];[request setDidFailSelector:@selector(requestWentWrong:)];// queue is an NSOperationQueue[[self queue] addOperation:request]; } - (void)requestDone:(ASIHTTPRequest *)request{NSString *response = [request responseString];} - (void)requestWentWrong:(ASIHTTPRequest *)request{NSError *error = [request error];}
请求队列上下文
a、可以设置一个上下文(userInfo)到request对象中,当请求响应完后可以通过访问request对象的userInfo获取里面的信息
b、为每一个请求实例设置不同的setDidFinishSelector / setDidFailSelector的回调方法
c、子类化ASIHTTPRequest,重写requestFinished: 与 failWithProblem:方法
提供的更多的回调方法如下:
a、requestDidStartSelector,请求发起时会调此方法,你可以在此方法中跟据业务选择性的设置request对象的deleaget。
b、requestDidReceiveResponseHeadersSelector,当接受完响应的Header后设计此方法,这个对下载大数据的时候相当有用,你可以在方法里做更多业务上的处理。
c、requestDidFinishSelector,请求并响应成功完成时调用此方法
d、requestDidFailSelector,请求失败
e、queueDidFinishSelector,整个队列里的所有请求都结束时调用此方法。
注意:添加到队列中其实并不能执行请求,只有调用[queue go]才会执行;一个正在运行中的队列,并不需要重复调用[queue go]。
默认情况下,队列中的一个请求如果失败,它会取消所有未完成的请求。
可以设置[queue setShouldCancelAllRequestsOnFailure:NO]来修 正。
队列请求中需要注意的是,如果你取消了一个请求,队列会自动取消其它所有请求。
如果只想取消一个请求,可以设置队列:[queue setShouldCancelAllRequestsOnFailure:NO];
如果想明确取消所有请求:[queue cancelAllOperations];
0 0
- ASIHTTPRequest的使用——队列请求
- ASIHTTPRequest的使用——请求HTTPS
- ASIHTTPRequest的使用——网络请求缓存
- ASIHTTPRequest的使用——同步或异步请求
- ASIHttpRequest网络请求库的使用
- ASIHTTPRequest的使用——框架使用
- ASIHTTPRequest的使用——下载缓存
- ASIHTTPRequest的使用——封装
- ASIHTTPRequest的使用——介绍说明
- ASIHTTPRequest的使用—— NSHTTPCookie
- ASIHTTPRequest的使用—— ASIDownloadCache缓存
- ASIHTTPRequest的使用——下载文件
- ASIHttpRequest:创建队列、下载请求、断点续传、解压缩
- ASIHttpRequest:创建队列、下载请求、断点续传、解压缩
- ASIHttpRequest:创建队列、下载请求、断点续传、解压缩
- ASIHttpRequest:创建队列、下载请求、断点续传、解压缩
- ASIHttpRequest:创建队列、下载请求、断点续传、解压缩
- ASIHttpRequest:创建队列、下载请求、断点续传、解压缩
- 转载:C++面试题集
- Qt杂项笔记
- RateLimiter
- Hello World!
- HDU 1165 Eddy's research II
- ASIHTTPRequest的使用——队列请求
- Python解析文件中的unicode字符
- 关于ucgui多应用调度框架解析
- java数据库基本操作
- swift读取plist文件内容用UITableView展示
- 简易php博客(6)_后台修改
- Java自定义注解的实现
- LeetCode:String to Integer (atoi)
- Activity