IOS学习笔记25—HTTP操作之ASIHTTPRequest(一)
ASIHTTPRequest是一个第三方开源项目,在现在的IOS应用中多使用到这个开源类库来提供网络操作,相比于SDK提供的网络操作类库,ASIHTTPRequest使用上更加方便、效率更高,同时功能也非常强大。这是ASIHttpRequest的官网:http://allseeing-i.com/ASIHTTPRequest/
以下是官方对ASIHttpRequest的解释:
What is ASIHTTPRequest?
ASIHTTPRequest
is an easy to use wrapper around the CFNetwork API that makes some of
the more tedious aspects of communicating with web servers easier. It is
written in Objective-C and works in both Mac OS X and iPhone
applications.
It
is suitable performing basic HTTP requests and interacting with
REST-based services (GET / POST / PUT / DELETE). The included
ASIFormDataRequest subclass makes it easy to submit POST data and files
usingmultipart/form-data.
ASIHTTPRequest
是在SDK的API中CFNetwork之上封装的一个开源类库,使复杂的网络处理变得简单,ASIHTTPRequest用OC开发,适用于Mac
OS X和IOS平台开发。另外它还支持表单数据提交,适合与基于HTTP的REST架构的服务进行交互(使用GET、POST、PUT请求方式)。
1.在项目中集成ASIHTTPRequest
首先到官网上下载项目包,解压后可以看到项目的文件结构如下:

然
后就是把该项目添加到我们自己的项目当中,直接将这个文件夹拖拽到我们自己项目的根目录下就可以了,选择拷贝文件到项目选项,然后是添加
一些框架,有
CFNetwork.framework,SystemConfiguration.framework,MobileCoreServices.framework,CoreGraphics.framework
和libz.1.2.3.dylib(IOS5中为libz.1.2.5.dylib),最后将这些框架拖拽到Framwork文件夹中就可以了,这样就
完成了集成ASIHTTPRequest的过程。下面看下工程目录结构:

2.使用ASIHTTPRequest进行网络操作
首先,在需要使用该类库的文件中引入头文件
#import "ASIHTTPRequest.h"
然后编写执行网络请求操作的代码:
- <font color="#000"><font face="Arial">- (IBAction)startAsycRequest:(id)sender {
- NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
- __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
- //使用OC中新增的bolck语法(块语法),可以实现并行编程
- //以下方法是在请求完成后会被调用的块
- [request setCompletionBlock:^{
- //获取请求返回结果
- NSString *response = [request responseString];
- NSLog(@"%@",response);
- //如果是数据集,可以使用以下方式返回结果
- // NSData *responseData = [request responseData];
- }];
- //如果请求失败,可以在这里进行处理
- [request setFailedBlock:^{
- // NSError *error = [request error];
- }];
- //开启一个异步请求(这里只说明了异步请求的使用,因为一般情况下的网络请求都采用异步的方式,否则会阻塞UI)
- [request startAsynchronous];
- }
- </font></font>
复制代码
执行后打印出来的结果是一个网页的完成HTML信息:

下一章将继续学习ASIHTTPRequest的其他功能,后续还会结合之前的知识做一个小Demo来练习和巩固所学。
IOS学习笔记25—HTTP操作之ASIHTTPRequest(一)的更多相关文章
- IOS学习笔记25—HTTP操作之ASIHTTPRequest
IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...
- iOS: 学习笔记, 使用FMDatabase操作sqlite3
使用FMDatabase操作sqlite3数据库非常简单和方便 // // main.m // iOSDemo0602_sqlite3 // // Created by yao_yu on 14-6- ...
- IOS学习笔记48--一些常见的IOS知识点+面试题
IOS学习笔记48--一些常见的IOS知识点+面试题 1.堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来说,释放工作由程序员控制,容易产生memor ...
- iOS学习笔记-自定义过渡动画
代码地址如下:http://www.demodashi.com/demo/11678.html 这篇笔记翻译自raywenderlick网站的过渡动画的一篇文章,原文用的swift,由于考虑到swif ...
- iOS学习笔记-精华整理
iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...
- iOS学习笔记10-UIView动画
上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UI ...
- iOS学习笔记总结整理
来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- iOS学习笔记之触摸事件&UIResponder
iOS学习笔记之触摸事件&UIResponder 触摸事件 与触摸事件相关的四个方法如下: 一根手指或多根手指触摸屏幕 -(void)touchesBegan:(NSSet *)touches ...
随机推荐
- 用纯CSS实现的箭头
div+css实现带三角箭头提示框 链接:http://www.xuebuyuan.com/160534.html 链接:http://www.admin10000.com/document/4089 ...
- Node.js 蚕食计划(三)—— Express 启航
如果看过上一篇<Node.js 蚕食计划>,就会发现手动搭建一个 web 服务器还是比较繁琐 而 express 就是一个可以极大地提高开发效率的 web 开发框架 一.创建项目 在 ex ...
- Hadoop源码篇---解读Mapprer源码outPut输出
一.前述 上次讲完MapReduce的输入后,这次开始讲MapReduce的输出.注意MapReduce的原语很重要: "相同"的key为一组,调用一次reduce方法,方法内迭代 ...
- Python可视化库Matplotlib的使用
一.导入数据 import pandas as pd unrate = pd.read_csv('unrate.csv') unrate['DATE'] = pd.to_datetime(unrate ...
- express学习之session
最新版本的express没有包含session依赖项,需要我们自己配置并安装. 安装方法:npm install express-session 使用:var session = require('e ...
- COM学习(二)——COM的注册和卸载
COM组件是跨语言的,组件被注册到注册表中,在加载时由加载函数在注册表中查找到对应模块的路径并进行相关加载.它的存储规则如下: 1. 在注册表的HKEY_CLASSES_ROOT中以模块名的方式保存着 ...
- 魔方 NewLife.Cube
魔方 是一个基于 ASP.NET MVC 的 用户权限管理平台,可作为各种信息管理系统的基础框架. 演示:http://cube.newlifex.com 源码 演示账号:admin/admin 源码 ...
- Vue2.0 相对于Vue1.0的变化:生命周期
1.生命周期 根据提供的生命周期钩子说明Vue.js实例各个阶段的情况,Vue.js 2.0对不少钩子进行了修改,以下说明:(灰色字体代表是 2.0已经废弃或者被更名的钩子,黑色字体代表1.0 和2. ...
- 从Unity中的Attribute到AOP(八)
本文将讲一下在UnityEditor命名空间下的一些特性. CallBackOrder,这个Attribute是所有带callback index的Attribute的基类,由于官方也没有给出详细的说 ...
- Zabbix实战-简易教程--动作(Actions)--自动注册
一.概述 之前已经讲述了自动发现功能,自动注册和自动发现非常类似,但是比自动发现更精确.因为自动注册,是在Agent上自定义元数据,然后Agent将元数据发送给server进行匹配,如果匹配一致,则进 ...