IOS 学习笔记 —— ASIHTTPRequest 之 发送异步请求

1 引入头文件

#import "ASIHTTPRequest.h"
#import "ASIHTTPRequestDelegate.h"
#import "JSONKit.h"

2 创建请求

NSURL *postUrl = [NSURL URLWithString:@"INPUT YOUR URL STRING"];
NSLog(@"postUrl = %@", postUrl);
    
ASIHTTPRequest *request = [[ASIHTTPRequest alloc]initWithURL:postUrl];
request.delegate = self;//注意:需要实现协议<ASIHTTPRequestDelegate>
request.requestMethod = @"POST";//发送方式
[request startAsynchronous];//发送异步请求

3 响应请求结果

#pragma mark - ASIHTTPRequest,请求数据成功
-(void)requestFinished:(ASIHTTPRequest *)request{
    NSLog(@"请求数据成功");
    
    @try{
        //Use when fetching binary data
        NSData *data = request.responseData;
        NSLog(@"data = %@", data);

        NSString *str1 = [request responseString];
        NSLog(@"str1 = %@", str1);
        NSString *str2 = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"str2 = %@", str2);
        

        //系统自带JSON解析
        NSDictionary *dic1 = [NSJSONSerialization JSONObjectWithData:request.responseData options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"dic1 = %@", dic1);
        //JSONKit解析
        NSDictionary *dic2 = [request.responseData objectFromJSONData];
        NSLog(@"dic2 = %@", dic2);
        NSDictionary *dic3 = [str1 objectFromJSONString];
        NSLog(@"dic3 = %@", dic3);


        //系统自带JSON解析
        NSArray *arr1 = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"arr1 = %@", arr1);
        //JSONKit解析
        NSArray *arr2 = [request.responseData objectFromJSONData];
        NSLog(@"arr2 = %@", arr2);
        NSArray *arr3 = [str1 objectFromJSONString];
        NSLog(@"arr3 = %@", arr3);
        
        NSArray *arr4 = [[NSArray alloc] initWithObjects:data, nil];
        NSLog(@"arr4 = %@", arr4);

        //...
    }
    @catch (NSException *exception) {
    }
    @finally {
    }
}

#pragma mark - ASIHTTPRequest,请求数据失败
-(void)requestFailed:(ASIHTTPRequest *)request{
    NSLog(@"请求数据失败");
}

4 取消请求

if (request != nil) {
    [request cancel];
    [request clearDelegatesAndCancel];
}


你可能感兴趣的:(ios,学习笔记,ASIHTTPRequest)