一、创建一个同步请求
这是最简单的用法,发送 startSynchronous 消息将在相同线程中执行请求,不管是否成功,
完成后返回控制。
查看error 属性以检测问题。
要以字符串形式得到响应,就调用responseString 方法。这个方法不适合二进制数据 - 你
应该使用responseData 得到NSData 对象, 或者如果有更大的文件,你可以设置
downloadDestinationPath 将请求下载到文件。
代码如下:
-(IBAction)grabURL:(id)sender
{
NSURL *url = [NSURL URLWithString:@http://www.baidu.com];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request startSynchronous];
NSError *error = [request error];
if (!error) {
NSString *response = [request responseString];
}
}
}
注意:一般的,你应该优先使用异步请求,如果你在主线程中使用ASIHTTPRequest 的同步
方法,程序的ui 在请求过程中将被锁定而无法响应。
二、创建一个异步请求
下面的代码做同样的事情,但请求运行于后台。
- (IBAction)grabURLInBackground:(id)sender
{
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
// 获得文本数据
NSString *responseString = [request responseString];
// 获得二进制数据
NSData *responseData = [request responseData];
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
未完,待续......