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];
}


转载于:https://my.oschina.net/bingshanguxue/blog/352906

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值