IT虾米网

ASI框架使用全集讲解详解

xmjava 2018年06月24日 手机开发 371 0
#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 

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

NSThread中cancle与exit的使用详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。