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

依赖的5个库:

CFNetwork

SystemCorfiguration

MobileCoreServices

和libz、libxml2

ASIHttpRequest库内容能够到 Github 开源网去下载

一、ASIHttpRequest同步请求

//同步请求

- (void)synchronous:(NSURL *)url

{

ASIHTTPRequest *request = [ASIHTTPRequest
requestWithURL:url];

[request
setRequestMethod:@"GET"];

];

//设置请求头

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

//设置cookies
保存到本地 设置登录password
下次能够不用登陆

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

//发送同步请求

[request startSynchronous];

NSError *error = request.error;

if(error == nil)

{

//请求下来的数据

NSData *data =  request.responseData;

UIImage *image = [UIImage
imageWithData:data];

self.image = image;

}

else

{

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

}

}

//异步请求

- (void)aSynchronous:(NSURL *)url

{

ASIHTTPRequest *request = [ASIHTTPRequest
requestWithURL:url];

[request
setRequestMethod:@"GET"];

];

//1.使用delegate

//    request.delegate = self;

//2.使用block

[request setCompletionBlock:^{

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

NSData *data = request.responseData;

self.image = [UIImage
imageWithData:data];

}];

[request
setFailedBlock:^{

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

}];

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

//发送异步请求

[request startAsynchronous];

}

#pragma mark - ASIHTTPRequestdelegate

- (void)requestFinished:(ASIHTTPRequest *)request

{

NSData *data = request.responseData;

self.image = [UIImage
imageWithData:data];

}

- (void)requestFailed:(ASIHTTPRequest *)request

{

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

}

ASIHTTPRequest框架的简单使用的更多相关文章

  1. iOS网络编程-ASIHTTPRequest框架同步请求-备用

    在ASIHTTPRequest框架中与HTTP请求相关的类有:ASIHTTPRequest和ASIFormDataRequest,其中最常用的是ASIHTTPRequest,ASIFormDataRe ...

  2. ASIHTTPRequest框架使用总结系列之阿堂教程1(安装配置篇

    在前年,阿堂在<IOS开发系列之阿堂教程:玩转IPhone客户端和Web服务端交互(客户端)实践>一文中,对于ASIHTTPRequest框架有过一些介简单绍,具体链接地址见http:// ...

  3. 基于ThinkPHP框架的简单的后台管理系统

    版权声明:本文为博主原创文章,未经博主允许不得转载. 基于ThinkPHP框架的简单的后台管理系统 一个简单的后台管理系统,可能还不全面,可以自己改,有登录功能 实例如图:    

  4. PHP ORM框架与简单代码实现(转)

    对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据 ...

  5. 初识服务发现及Consul框架的简单使用

    初识服务发现及Consul框架的简单使用   1.什么是服务发现? 服务发现组件记录了(大规模)分布式系统中所有服务的信息,人们或者其它服务可以据此找到这些服务. DNS 就是一个简单的例子. 当然, ...

  6. truffle框架的简单使用

    truffle 给大家介绍一下这个框架怎么使用,其实把这个框架就是你们看我之前有一个教程是教你们怎么用remix-ide来连接私有链,编译,配置合约,然后进行调用的,truffle其实就是把这个步骤放 ...

  7. python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用

    python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装安装及简单使用:https://github.com/andymccurdy/r ...

  8. 框架Thinkphp5 简单的实现行为 钩子 Hook

    这篇文章主要介绍了关于框架Thinkphp5 简单的实现行为 钩子 Hook,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 实现在一个方法开始和结束加入两个行为:api_init.ap ...

  9. Net系列框架-Dapper+简单三层架构

    Net系列框架-Dapper+简单三层架构 工作将近6年多了,工作中也陆陆续续学习和搭建了不少的框架,后续将按由浅入深的方式,整理出一些框架源码,所有框架源码本人都亲自调试通过,如果有问题,欢迎联系我 ...

随机推荐

  1. POJ 1111(数字很吉利嘛) 简单BFS

    Image Perimeters Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8594 Accepted: 5145 Desc ...

  2. B - Sleuth

    Problem description Vasya plays the sleuth with his friends. The rules of the game are as follows: t ...

  3. Java数据类型转换1

    1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...

  4. ie8及其以下版本兼容性问题之文本省略

    1. 单行文本省略 单行文本省略适用于文本超出内容显示区,则在末尾显示省略号 1.1 普通文本超出省略 普通文本超出显示省略号,示例: .p{ height: 30px line-height: 30 ...

  5. js邮箱正则表达式的使用

    在网页中插入邮箱输入框,当邮箱输入格式错误,给出提示.代码:function yy(){ var t = /^[A-Za-zd0-9]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[- ...

  6. 安装Oracle客户端时,检查系统要求时状态为错误的解决办法

    这是我自己安装oracle11g至win7的错误记录: 正在检查操作系统要求... 要求的结果: 5.0,5.1,5.2,6.0 之一 实际结果: 6.1 我换了 10g,11g从32bit到64bi ...

  7. MyEclipse 连接Oracle数据库(初学者必看)

    前言:刚接触Oracle数据库,便有一个需求,编写控制台程序,实现主人登录.数据库为Oracle.下面详细介绍一下MyEclipse 连接Oracle数据库.   package DbHelp; im ...

  8. ANN:DNN结构演进History—LSTM网络

    为了保持文章系列的连贯性,参考这个文章: DNN结构演进History-LSTM_NN 对于LSTM的使用:谷歌语音转录背后的神经网络 摘要: LSTM使用一个控制门控制参数是否进行梯度计算,以此避免 ...

  9. MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码)

    MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码) MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以设置UTF-8为例来说明. 需 ...

  10. revit二次开发之族的类型参数与实例参数的转换

    1背景小伙伴在做revit二次开发的时候,可能需要在族环境中将族的类型参数与实例参数相互转换. 2思路1.使用族管理器FamilyManager,参见注释12.首先获取需要转换的参数(单个与批量),参 ...