首页 > 代码库 > ASIHTTPRequest框架的简单使用

ASIHTTPRequest框架的简单使用

          ASIHttpRequest是一款及其强劲的HTTP访问开源项目。让简单的API完成复杂的功能,如:异步请求,队列请求,GZIP压缩,缓存,断点续传,进度跟踪,上传文件,HTTP认证。在新版本中,还加入了Object-C闭包Block的支持,让我们的代码更加精简灵活。

依赖的5个库:

CFNetwork

SystemCorfiguration

MobileCoreServices

和libz、libxml2

ASIHttpRequest库内容可以到 Github 开源网去下载


一、ASIHttpRequest同步请求


//同步请求

- (void)synchronous:(NSURL *)url

{

    ASIHTTPRequest *request = [ASIHTTPRequestrequestWithURL:url];

    [requestsetRequestMethod:@"GET"];

    [request setTimeOutSeconds:60];


    //设置请求头

    //    [request setRequestHeaders:<#(NSMutableDictionary *)#>]

    //设置cookies保存到本地 设置登陆密码下次可以不用登陆

    //    [request setRequestCookies:<#(NSMutableArray *)#>]

    

    

    //发送同步请求

    [request startSynchronous];

   NSError *error = request.error;

   if(error == nil)

    {

        //请求下来的数据

       NSData *data =http://www.mamicode.com/ request.responseData;

       UIImage *image = [UIImageimageWithData:data];

       self.image = image;

    }

   else

    {

       NSLog(@"请求网络出错: %@",error);

    }

}



//异步请求

- (void)aSynchronous:(NSURL *)url

{

    ASIHTTPRequest *request = [ASIHTTPRequestrequestWithURL:url];

    [requestsetRequestMethod:@"GET"];

    [request setTimeOutSeconds:60];

    //1.使用delegate

//    request.delegate = self;

    

    //2.使用block

    [request setCompletionBlock:^{

        //网络请求完成调用的block

       NSData *data = http://www.mamicode.com/request.responseData;

       self.image = [UIImageimageWithData:data];

        

    }];

    [requestsetFailedBlock:^{

        //网络请求失败调用的block

    }];

    

    //////////////////////////////////////////////

    

    //发送异步请求

    [request startAsynchronous];

}

#pragma mark - ASIHTTPRequestdelegate

- (void)requestFinished:(ASIHTTPRequest *)request

{

   NSData *data = http://www.mamicode.com/request.responseData;

   self.image = [UIImageimageWithData:data];

}

- (void)requestFailed:(ASIHTTPRequest *)request

{

   NSLog(@"%@",request.error);

}