您的位置:首页 > 理论基础 > 计算机网络

IOS学习:常用第三方库(ASIHttpRequest)

2013-05-25 16:29 501 查看
ASIHttpRequest是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套http请求api。

官方地址:http://allseeing-i.com/ASIHTTPRequest/

依赖库:CFNetwork.framework、SystemConfiguration.framework、MobileCoreServices.framework、CoreGraphics.framework和libs.1.2.3dylib

下面是简单的http请求示例:
1、同步的http请求
// 简单的同步请求示例
- (void)syncRequest {
NSURL *url = [NSURLURLWithString:@"http://www.weather.com.cn/data/sk/101010100.html"];
ASIHTTPRequest *request = [ASIHTTPRequestrequestWithURL:url];
[request startSynchronous];
NSError *error = [request error];
if (!error) {
NSString *response = [request responseString];
NSLog(@"Response :%@", response);
self.result.text = response;
} else {
self.result.text = @"error";
}
}


2、异步的http请求
// 简单的异步请求示例(代理实现)
- (void)asyncRequest {
NSURL *url = [NSURLURLWithString:@"http://www.weather.com.cn/data/cityinfo/101010100.html"];
ASIHTTPRequest *request = [ASIHTTPRequestrequestWithURL:url];
request.delegate = self;
// 开始异步请求
[request startAsynchronous];
}


代理方法:
// 请求完成
- (void)requestFinished:(ASIHTTPRequest *)request
{
// 如果请求的是二进制数据,用responseData,用NSData接收
NSLog(@"异步请求成功返回");
self.result.text = [request responseString];
}

// 请求失败
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSLog(@"异步请求失败");
self.result.text = @"error";

}


3、块语法实现的异步请求
// 简单的异步请求用块语法实现
- (void)asyncRequestBlock {
NSURL *url = [NSURLURLWithString:@"http://m.weather.com.cn/data/101010100.html"];
__blockASIHTTPRequest *request = [ASIHTTPRequestrequestWithURL:url];
[request setCompletionBlock:^{
// 请求响应结束
NSString *response = [request responseString];
self.result.text = response;
}];

[request setFailedBlock:^{
// 请求失败
NSError *error = [request error];
//        self.result.text =
NSLog(@"error : %@", [error userInfo]);
}];

[request startAsynchronous];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: