向server端上传数据
ASIFormDataRequest ,模拟 Form表单提交,其提交格式与 Header会自己主动识别。
没有文件:application/x-www-form-urlencoded
有文件:multipart/form-data
没有文件:application/x-www-form-urlencoded
有文件:multipart/form-data
假设要发送自己定义数据:
下载文件
通过设置request的setDownloadDestinationPath。能够设置下载文件用的下载目标文件夹。
首先。下载过程文件会保存在temporaryFileDownloadPath文件夹下。假设下载完毕会做下面事情:
1,假设数据是压缩的,进行解压。并把文件放在downloadDestinationPath文件夹中,暂时文件被删除
2。假设下载失败,暂时文件被直接移到downloadDestinationPath文件夹,并替换同名文件。
首先。下载过程文件会保存在temporaryFileDownloadPat
1,假设数据是压缩的,进行解压。并把文件放在downloadDestinationPath文件夹中,暂时文件被删除
2。假设下载失败,暂时文件被直接移到downloadDestinationPath文件夹,并替换同名文件。
假设你想获取下载中的全部数据,能够实现delegate中的request:didReceiveData:方法。
但假设你实现了这种方法,request在下载完后。request并不把文件放在downloadDestinationPath中,须要手工处理。
获取响应信息
信息:status , header, responseEncoding
获取请求进度
有两个回调方法能够获取请求进度。
1,downloadProgressDelegate,能够获取下载进度
2,uploadProgressDelegate,能够获取上传进度
1,downloadProgressDelegate
2,uploadProgressDelegate,能够获取上传进度
cookie的支持
假设Cookie存在的话,会把这些信息放在NSHTTPCookieStorage容器中共享,并供下次使用。
你能够用[ ASIHTTPRequest setSessionCookies:nil ] ; 清空全部Cookies。
当然。你也能够取消默认的Cookie策略,而使自己定义的Cookie:
你能够用[ ASIHTTPRequest setSessionCookies:nil ] ; 清空全部Cookies。
当然。你也能够取消默认的Cookie策略,而使自己定义的Cookie:
大文件断点续传
0.94以后支持大文件的断点下载。仅仅须要设置:
[ request setAllowResumeForFileDownloads:YES ];
[ request setDownloadDestinationPath:downloadPath ];
就能够了。
[ request setAllowResumeForFileDow
[ request setDownloadDestinationPa
就能够了。
ASIHTTPRequest会自己主动保存訪问过的URL信息。并备之后用。在下面几个场景很实用:
1。当没有网络连接的时候。
2,已下载的数据再次请求时,仅当它与本地版本号不样时才进行下载。
1。当没有网络连接的时候。
2,已下载的数据再次请求时,仅当它与本地版本号不样时才进行下载。
ASIDownloadCache 设置下载缓存
它对Get请求的响应数据进行缓存(被缓存的数据必需是成功的200请求):
当设置缓存策略后。全部的请求都被自己主动的缓存起来。
另外。假设只希望某次请求使用缓存操作,也能够这样使用:
多种的缓存并存
只须要创建不同的ASIDownloadCache,并设置缓存所使用的路径,并设置到须要使用的request实例中:
缓存策略
缓存策略是我们控制缓存行为的主要方式,如:什么时候进行缓存,缓存数据的利用方式。
下面是策略可选列表(可组合使用):
下面是策略可选列表(可组合使用):
缓存存储方式
你能够设置缓存的数据须要保存多长时间。ASIHTTPRequest提供了两种策略:
a。ASICacheForSessionDurationCacheStoragePolicy。默认策略,基于session的缓存数据存储。
a。ASICacheForSessionDurati
当下次执行或[ASIHTTPRequest clearSession]时,缓存将失效。
b,ASICachePermanentlyCache
如:
另外,也能够使用clearCachedResponsesForStoragePolicy来清空指定策略下的缓存数据。
缓存其他特性
设置是否按server在Header里指定的是否可被缓存或过期策略进行缓存:
设置request缓存的有效时间:
能够推断数据是否从缓存读取:
设置缓存所使用的路径:
实现自己定义的缓存
仅仅要简单的实现ASICacheDelegate接口就能够被用来使用。
使用代理请求
默认的情况下。ASIHTTPRequest会使用被设置的默认代理。
但你也能够手动改动http代理:
ASIHTTPRequest, 请求的其他特性
iOS4中,当应用后台执行时仍然请求数据:
是否有网络请求:
是否显示网络请求信息在status bar上:
设置请求超时时,设置重试的次数:
KeepAlive的支持:
// Set the amount of time to hang on to a persistent connection before it should expire to 2 minutes
[ request setPersistentConnectionTimeoutSeconds:120 ];
// Disable persistent connections entirely
[ request setShouldAttemptPersistentConnection:NO ];