ASIHTTPRequest 是一款极其强劲的 HTTP 访问开源项目。让简单的 API 完成复杂的功能,如:异步请求,队列请求,GZIP 压缩,缓存,断点续传,进度跟踪,上传文件,HTTP 认证。同时它也加入了 Objective-C 闭包 Block 的支持,让我们的代码加轻简灵活。

头条推荐

iOS开发ASIHttpRequest库简介、配置和安装

使用ASIHTTPRequest可以很方便的进行一下操作:同步/异步方式下载数据,定义下载队列,让队列中的任务按指定的并发数来下载(队列下载必须是异步的),提交表单,文件上传,处理cookie,设置代理,上下载进度条,重定向处理,请求与响应的GZIP,验证与授权。……>>详细

iOS开发ASIHttpRequest创建和执行request

本文为大家介绍了iOS开发中ASIHttpRequest如何创建和执行request,其中包括同步请求,异步请求,使用Block,使用队列,取消异步请求等等内容。

创建NSOperationQueue,这个Cocoa架构的执行任务(NSOperation)的任务队列。我们通过ASIHTTPRequest.h的源码可以看到,此类本身就是一个NSOperation的子类。也就是说它可以直接被放到任务队列中并被执行。

同步请求

同步请求会在当前线程中执行,使用error属性来检查结束状态(要下载大文件,则需要设定downloadDestinationPath来保存文件到本地):

阅读全文

iOS开发ASIHttpRequest发送数据

本文为大家介绍了iOS开发ASIHttpRequest发送数据的内容,其中包括设定request头,使用ASIFormDataRequest POST表单,PUT请求、自定义POST请求等等内容。

设定request头

  1. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  2. [request addRequestHeader:@"Referer" value:@"http://www.dreamingwish.com/"]; 

使用ASIFormDataRequest POST表单

通常数据是以’application/x-www-form-urlencoded’格式发送的,如果上传了二进制数据或者文件,那么格式将自动变为‘multipart/form-data’ 。

阅读全文

iOS开发ASIHTTPRequest进度追踪

本文为大家介绍了发ASIHTTPRequest进度追踪的内容,其中包括追踪单个request的下载进度,追踪一系列request的下载进度,追踪单个request的上传进度,追踪一系列request的上传进度,精确进度条vs简单进度条,自定义进度追踪等等内容。

每个ASIHTTPRequest有两个delegate用来追踪进度:

downloadProgressDelegate (下载) 和 uploadProgressDelegate (上载)。

进度delegate可以是NSProgressIndicators (Mac OS X) 或者 UIProgressViews (iPhone).ASIHTTPRequest会自适应这两个class的行为。你也可以使用自定义class作为进度delegate,只要它响应setProgress:函数。

阅读全文

iOS开发ASIHTTPRequest身份验证

本文为大家介绍了iOS开发ASIHTTPRequest身份验证的内容,其中包括为URL指定要使用的用户名和密码,为request指定要使用的用户名和密码,将凭据存储到keychain,将凭据存储到session中,NTLM授权,使用代理来提供凭据,使用内建的授权对话框(目前只对iOS有效),在服务器请求凭据前向服务器发送凭据等等内容。

ASIHTTPRequest是简单易用的,它封装了CFNetwork API。使得与Web服务器通信变得更简单。它是用Objective-C编写的,可以在MAC OS X和iPhone应用中使用。

你可以查阅下图ASIHTTPRequest授权流程图来了解ASIHTTPRequest如何找到授权凭据,并将授权凭据应用到request上。

阅读全文

iOS开发ASIHTTPRequest中Cookie的使用

本文为大家介绍了iOS开发ASIHTTPRequest中Cookie的使用的内容,其中包括持久化cookie,自己处理cookie等等内容,希望对大家有所帮助。

持久化cookie

ASIHTTPRequest允许你使用全局存储来和所有使用CFNetwork或者NSURLRequest接口的程序共享cookie。

如果设置useCookiePersistence为YES(默认值),cookie会被存储在共享的 NSHTTPCookieStorage 容器中,并且会自动被其他request重用。值得一提的是,ASIHTTPRequest会向服务器发送其他程序创建的cookie(如果这些cookie对特定request有效的话)。

阅读全文

iOS开发ASIHTTPRequest数据压缩

使用gzip来处理压缩的响应数据

从0.9版本开始,ASIHTTPRequest会提示服务器它可以接收gzip压缩过的数据。许多web服务器可以在数据被发送之前压缩这些数据——这可以加快下载速度减少流量使用,但会让服务器的cpu(压缩数据)和客户端(解压数据)付出代价。总的来说,只有特定的几种数据会被压缩——许多二进制格式的文件像jpeg,gif,png,swf和pdf已经压缩过他们的数据了,所以向客户端发送这些数据时不会进行gzip压缩。文本文件例如网页和xml文件会被压缩,因为它们通常有大量的数据冗余。

怎样设置apache的mod_deflate来使用gzip压缩数据

apache 2.x以上版本已经配备了mod_deflate扩展,这使得apache可以透明地压缩特定种类的数据。要开启这个特性,你需要在apache的配置文件中启用mod_deflate。并将mod_deflate命令添加到你的虚拟主机配置或者.htaccess文件中。

阅读全文

iOS开发ASIHTTPRequest断点续传(下载)

本文为大家介绍了iOS开发ASIHTTPRequest断点续传(下载)的内容,其中包括ASIHTTPRequest可以恢复中断的下载,设置一个临时下载路径,断点续传的工作原理等等内容。

从0.94版本开始,ASIHTTPRequest可以恢复中断的下载。

这个特性只对下载数据到文件中有效,你必须为一下情况的request设置allowResumeForFileDownloads 为YES:

  • 任何你希望将来可以断点续传的下载(否则,ASIHTTPRequest会在取消或者释放内存时将临时文件删除)
  • 任何你要进行断点续传的下载

另外,你必须自己设置一个临时下载路径(setTemporaryFileDownloadPath),这个路径是未完成的数据的路径。新的数据将会被添加到这个文件,当下载完成时,这个文件将被移动到downloadDestinationPath 。

阅读全文

iOS开发ASIHTTPRequest直接读取磁盘数据流请求体

本文为大家介绍了iOS开发ASIHTTPRequest直接读取磁盘数据流的请求体的内容,其中包括ASIFormDataRequests,普通ASIHTTPRequest等等内容。

从0.96版本开始,ASIHTTPRequest可以使用磁盘上的数据来作为请求体。这意味着不需要将文件完全读入内存中,这就避免的当使用大文件时的严重内存消耗。使用这个特性的方法有好几种:ASIFormDataRequests和普通ASIHTTPRequest等等,下面来具体介绍。

ASIFormDataRequests

当使用setFile:forKey:时,ASIFormDataRequests自动使用这个特性。request将会创建一个包含整个post体的临时文件。文件会一点一点写入post体。这样的request是由 CFReadStreamCreateForStreamedHTTPRequest创建的,它使用文件读取流来作为资源。

阅读全文

iOS开发ASIHTTPRequest使用download cache

本文为大家介绍了iOS开发ASIHTTPRequest使用download cache的内容,其中包括cache策略,存储策略,其他cache相关的特性,编写自己的cache等等内容。

从1.8版本开始,ASIDownloadCache和ASICacheDelegate的API改变了,你可能需要修改你的代码。

尤其是,cache策略的可用选项发生了改变,你现在可以对单一request使用结合的cache策略

ASIHTTPRequest可以自动缓存下载的数据,在很多情况下这很有用。

阅读全文

ASIHttpRequest教程

iOS开发ASIHTTPRequest流量
本文为大家介绍了iOS开发ASIHTTPRequest流量控制的内容,其中包括所有reque…
iOS开发ASIHTTPRequest客户
本文为大家介绍了iOS开发ASIHTTPRequest客户端证书支持的内容,其中包括服…
iOS开发ASIHTTPRequest使用
本文为大家介绍了iOS开发ASIHTTPRequest使用代理连接的内容,其中包括要求…
iOS开发ASIHTTPRequest其他
本文为大家介绍了iOS开发ASIHTTPRequest其他特性的内容,其中包括设置user …
iOS开发ASIHTTPRequest的Deb
本文为大家介绍了iOS开发ASIHTTPRequest的Debug选项的内容,其中包括DEBUG_…
升级到iOS5后ASIHttpRequest
本文为大家介绍了升级到iOS5后ASIHttpRequest库问题及解决方法的内容,其中…

投    票

你在iOS开发中是否使用过ASIHttpRequest?
当然使用过,很给力
只是简单的接触过一点
没用过,不太了解
虽然不知道什么东东,酱油飘过

专题推荐

在iOS开发过程中,尤其是对于新手来说,都会遇到或多或少的难题,其实,综合来看有的问题并不是特别的复杂
iOS开发之常见疑难问题解决
在iOS开发过程中,尤其是对于新手来说,都会遇到或多或少的难题,其实,综合来...
...域拓展自己的视野和能力,于是决定挽起袖子学习iOS应用开发。兴奋之余,你开始做一些初步的研究,但是很
iOS 7人机交互指南之UI设计
...域拓展自己的视野和能力,于是决定挽起袖子学习iOS应用开发。兴奋之余,你开...
WWDC 2013年苹果全球开发者大会于6月10日-14日在旧金山莫斯康展览中心举行。会议主题涉及开发、部署和整合i
苹果WWDC2013全球开发者大会
WWDC 2013年苹果全球开发者大会于6月10日-14日在旧金山莫斯康展览中心举行。会...
...低。本专题系统地为各位阐述了SQLite的入门基础知识,iOS开发中对于SQLite的使用和注意事项,以及一些归
嵌入式数据库SQLite在iOS开
...低。本专题系统地为各位阐述了SQLite的入门基础知识,iOS开发中对于SQLite的...

一周排行

留言评论