ASI框架使用全集讲解


#import "ViewController.h"
#import "ASIHTTPRequest.h"
#import "ASIFormDataRequest.h"
#import "DACircularProgressView.h"


@interface ViewController ()<ASIHTTPRequestDelegate>


@property(nonatomic,strong) NSMutableData  *data;


@property(nonatomic,weak) DACircularProgressView * da;
@end


@implementation ViewController


- (NSMutableData *)data{


    if (_data==nil) {
        _data=[NSMutableData data];
    }
    return _data;
    
}


- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor=[UIColor greenColor];
    
    DACircularProgressView * da=[[DACircularProgressView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    
    self.da=da;
    self.da.center=self.view.center;
    [self.view addSubview:da];
    
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{


    //1 ASI 同步get请求
//    [self _synGet];
    
    //2 ASI 异步get请求
//    [self _asynGet];
    
    //3 ASI 异步get请求(block)
//    [self _asynGetBlock];
    
    //4 ASI 同步Post请求
//     [self _synPost];
    
    //5 ASI 异步Post请求
//    [self _asynPost];
    
    // 6ASI 下载
//    [self _downLoad];
    
    // 7ASI 上传
    [self _upLoad];
    
    
}

//同步get请求
- (void)_synGet{


    NSURL * url=[NSURL URLWithString:@"http://localhost/logo.php?userName=jereh&pwd=123"];
    
    //1 封装请求
    ASIHTTPRequest * request=[[ASIHTTPRequest alloc] initWithURL:url];
    //2 发送请求
    [request startSynchronous];
    //3 获取响应数据
    NSData * data=request.responseData;
    NSString * result=[[NSString alloc] initWithData: data encoding:NSUTF8StringEncoding];
    NSLog(@"%@",result);
    
}


//异步get请求
- (void)_asynGet{
    
    
    NSURL * url=[NSURL URLWithString:@"http://localhost/logo.php?userName=jereh&pwd=123"];
    
    //1 封装请求
    ASIHTTPRequest * request=[[ASIHTTPRequest alloc] initWithURL:url];
    
    request.delegate=self;
    
    //2 发送请求
    [request startAsynchronous];
    
    
    
}




//异步get请求block
- (void)_asynGetBlock{
    
    
    NSURL * url=[NSURL URLWithString:@"http://localhost/logo.php?userName=jereh&pwd=123"];
    
    //1 封装请求
    ASIHTTPRequest * request=[[ASIHTTPRequest alloc] initWithURL:url];
    
    //2 发送请求
    [request startAsynchronous];
    
    
    //3 重写block
     [request setDataReceivedBlock:^(NSData *data) {
         [self.data appendData:data];




     }];
    
     [request setHeadersReceivedBlock:^(NSDictionary *responseHeaders) {
     
     }];
    
    [request setFailedBlock:^{
        
    }];
    
    
    [request setCompletionBlock:^{
        NSString * str=  [[NSString alloc] initWithData:self.data encoding:NSUTF8StringEncoding];
        NSLog(@"%@",str);
    }];
    
}


//同步Post请求block
- (void) _synPost{
    
    
    NSURL * url=[NSURL URLWithString:@"http://localhost/loginPost.php"];
    
    ASIFormDataRequest * form=[[ASIFormDataRequest alloc] initWithURL:url];
    
    //设置请求参数
    [form setPostValue:@"jereh" forKey:@"userName"];
    [form setPostValue:@"123" forKey:@"pwd"];

    [form startSynchronous];
    
    NSString * str= form.responseString;
    NSLog(@"%@",str);
    
}

//同步Post请求block
- (void) _asynPost{
     
    NSURL * url=[NSURL URLWithString:@"http://localhost/loginPost.php"];
    
    ASIFormDataRequest * form=[[ASIFormDataRequest alloc] initWithURL:url];
    
    //设置请求参数
    [form setPostValue:@"jereh" forKey:@"userName"];
    [form setPostValue:@"123" forKey:@"pwd"];

    form.delegate=self;
   
    [form startSynchronous];

}


- (void) _downLoad{
 
    NSURL * url=[NSURL URLWithString:@"http://localhost/test.rar"];
    
    //1 封装请求
    ASIHTTPRequest * request=[[ASIHTTPRequest alloc] initWithURL:url];
    
    //2 dest path
   NSString *path=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    path =[path stringByAppendingPathComponent:@"new.rar"];
    NSLog(@"%@",path);
    
    request.downloadDestinationPath=path;
    
    request.downloadProgressDelegate=self.da;
    
    //3 请求
    [request startAsynchronous];
 
}

//上传
- (void) _upLoad{
    
    NSURL * url=[NSURL URLWithString:@"http://localhost/upload.php"];
    
    ASIFormDataRequest * form=[[ASIFormDataRequest alloc] initWithURL:url];
    
    
    NSString * path=[[NSBundle mainBundle] pathForResource:@"default.png" ofType:nil];
    
    //设置文件参数
    [form setFile:path withFileName:@"new.png" andContentType:@"image/png" forKey:@"file"];
 
    
    form.uploadProgressDelegate=self.da;
    
    [form startAsynchronous];

}

#pragma mark - ASIHTTPRequest代理
- (void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data{

    [self.data appendData:data];
 }

- (void)request:(ASIHTTPRequest *)request didReceiveResponseHeaders:(NSDictionary *)responseHeaders{

}


- (void)requestFinished:(ASIHTTPRequest *)request{

    NSString * str=  [[NSString alloc] initWithData:self.data encoding:NSUTF8StringEncoding];
    NSLog(@"%@",str);

}

- (void)requestFailed:(ASIHTTPRequest *)request{

}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值