使用ASI下载网络数据

ASIHttpRequest 请求类
第三方开源库


功能:
<1>遵守http协议,支持数据的同步和异步下载,支持get、post请求
<2>支持数据的异步并发请求(同时请求多个数据)
<3>支持下载大的资源(视频、音频、杂志等),并能随时获取下载进度
<4>支持下载资源的断点续传

现在 公司 都不怎么用ASI   ASI 停止更新了   asi 需要导入很多库

现在 公司 都用 AFNetworking 第三方  更新维护   不需要导入库


1.第一步 把ASI 第三库的库 首先添加到工程 (非ARC下)

在arc 环境下 编译非arc 的代码
-fno -objc-arc

在非arc 环境下编译arc 的代码
源码文件 加上编译参数 -fobjc-arc


2.导入四个库
 
3.//导入第三方的库头文件
#import "ASIHTTPRequest.h"
需要进行下载的界面要遵守协议
@interface RootViewController : UITableViewController<ASIHTTPRequestDelegate>


4.创建ASI下载请求对象  

5.设置代理

get
    _asiHttpRequest = [ASIHTTPRequest requestWithURL:url];
    //设置代理
    _asiHttpRequest.delegate = self;
    //还可以设置tag值  可以区分 不同的ASI 请求对象
    _asiHttpRequest.tag = 101;
    //开始 异步请求 下载数据
    [_asiHttpRequest startAsynchronous];


6.实现协议中的方法
- (void)requestFinished:(ASIHTTPRequest *)request;

post

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlString]];
    request.delegate = self;
    //设置请求方式
    [request setRequestMethod:@"POST"];
    //将参数给到request
    for (NSString *key in dic) {
        id obj = [dic objectForKey:key];
        //NSData类型  需要做特殊处理
        if ([obj isKindOfClass:[NSData class]]) {
            //上传图片,fileName 文件的名称
            //andContentType 文件类型
            [request setData:obj withFileName:@"2.png" andContentType:@"image/png" forKey:key];
        }else{
         //普通的参数
            [request addPostValue:obj forKey:key];
        }
    }
    [request startAsynchronous];


//将字典转化成json
            NSDictionary *testDic = [NSDictionary dictionaryWithObjectsAndKeys:@"test1",@"username",@"20",@"age",nil];
            NSLog(@"testDic:%@",testDic);
            //将字典转化成json的data
            NSData *data = [NSJSONSerialization dataWithJSONObject:testDic options:NSJSONWritingPrettyPrinted error:nil];
            NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(@"json:%@",jsonString);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值