ASI
ASIHttpRequest
二、POST请求
.h
加头文件
#import "ASIFormDataRequest.h"
遵守协议
《ASIHTTPRequestDelegate》
.m
ASIFormDataRequest * request = [[ASIFormDataRequest alloc]initWithURL:url];
request.delegate = self;
request.tag = 5000;
[request responseStatusCode];//获取反馈信息,可以不用写
[request startAsynchronous];
ASIHTTPRequest取消异步请求 (2012-10-22 11:59:27)
转自 http://blog.sina.com.cn/software13
取消异步请求
首先,同步请求是不能取消的。
其次,不管是队列请求,还是简单的异步请求,全部调用[ request cancel ]来取消请求。取消的请求默认都会按请求失败处理,并调用请求失败delegate。
如果不想调用delegate方法,则设置:[ request clearDelegatesAndCancel];
队列请求中需要注意的是,如果你取消了一个请求,队列会自动取消其它所有请求。如果只想取消一个请求,可以设置队列:[ queue setShouldCancelAllRequestsOnFailure:NO ]; 如果想明确取消所有请求:[ queue cancelAllOperations ];
安全的内存回收建议
request并没有retain你的delegate,所以在没有请求完的时候释放了此delegate,需要在dealloc方法里先取消所有请求,再释放请求实例,如:
- (void)dealloc
{
[request clearDelegatesAndCancel];
[request release];
...
[super dealloc];
}
ASIHTTPRequest提前终止异步请求
[[ASIHTTPRequest sharedQueue] cancelAllOperations];