ASIHTTPRequest

使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API.

安装:

1,下载ASIHTTPRequest,加入到工程中

2,加入libz.dylib,MobileCoreServices,SYstemConfiguration,CFNetwork框架。

实例:

发送一个同步请求:

- (IBAction)tipButton:(id)sender {
    NSLog(@"ButtonPressed");
    NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request startSynchronous];
    NSError *error = [request error];
    if (!error) {
        NSString *response = [request responseString];
        NSLog(@"response = %@",response);
    }
    else{
        NSLog(@"ASIHTTPRequest error");
    }
 }

首先请求要有一个ASIHTTPRequest的对象,开始调用startSynchronize方法。如果请求没有错误,开始接收数据。

以文本形式接收数据用responseString,以二进制形式接收数据用responseData。


发送一个异步请求:

//点击按钮,调用按钮响应函数,开始异步请求
-(IBAction)tipButton:(id)sender{
    NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setDelegate:self];
    [request startAsynchronous];
}

异步请求方式稍微麻烦了一点,第一步要设置代理,然后开始异步请求。请求开始时,代理会调用下面方法:

//请求开始调用的第一个方法
-(void)requestStarted:(ASIHTTPRequest *)request{
    NSLog(@"request start");
}

请求开始以后,服务器返回数据,首先是返回文件头,调用下面方法:

//先收到头儿,然后收到数据。
-(void)request:(ASIHTTPRequest *)request didReceiveResponseHeaders:(NSDictionary *)responseHeaders{
    
}

开始接收数据,
//请求的数据是分批收到的,所以这个方法被连续调用
-(void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data{
    NSLog(@"did receive data");
}
请求结束或者出现错误时候调用下面的方法

//请求结束时候调用的方法
-(void)requestFinished:(ASIHTTPRequest *)request{
    //以文本形式读取返回的数据
    NSString *responseString = [request responseString];
    //以二进制形式读取返回数据
    NSData *data = [request responseData];
  //  NSLog(@"responseString = %@,responseData = %@",responseString,data);
    NSLog(@"finish");
}

//请求错误时候调用这个方法
-(void)requestFailed:(ASIHTTPRequest *)request{
    NSError *error = [request error];
   // NSLog(@"error = %@",[error localizedDescription]);
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值