做写手哪个网站好,唯品会 一家专做特卖的网站,cn 域名网站,公司注册地址跟经营地址不一样官方网站#xff1a; http://allseeing-i.com/ASIHTTPRequest/ 。可以从上面下载到最新源码#xff0c;以及获取到相关的资料。 使用iOS SDK中的HTTP网络请求API#xff0c;相当的复杂#xff0c;调用很繁琐#xff0c;ASIHTTPRequest就是一个对CFNetwork API进行了封装 http://allseeing-i.com/ASIHTTPRequest/ 。可以从上面下载到最新源码以及获取到相关的资料。 使用iOS SDK中的HTTP网络请求API相当的复杂调用很繁琐ASIHTTPRequest就是一个对CFNetwork API进行了封装并且使用起来非常简单的一套API用Objective-C编写可以很好的应用在Mac OS X系统和iOS平台的应用程序中。ASIHTTPRequest适用于基本的HTTP请求和基于REST的服务之间的交互。 ASIHTTPRequest功能很强大主要特色如下 l 通过简单的接口即可完成向服务端提交数据和从服务端获取数据的工作l 下载的数据可存储到内存中或直接存储到磁盘中l 能上传本地文件到服务端l 可以方便的访问和操作请求和返回的Http头信息l 可以获取到上传或下载的进度信息为应用程序提供更好的体验l 支持上传或下载队列并且可获取队列的进度信息l 支持基本、摘要和NTLM身份认证在同一会话中授权凭证会自动维持并且可以存储在KeychainMac和iOS操作系统的密码管理系统中l 支持Cookiel 当应用iOS 4在后台运行时请求可以继续运行l 支持GZIP压缩数据l 内置的ASIDownloadCache类可以缓存请求返回的数据这样即使没有网络也可以返回已经缓存的数据结果l ASIWebPageRequest –可以下载完整的网页包括包含的网页、样式表、脚本等资源文件并显示在UIWebView /WebView中。任意大小的页面都可以无限期缓存这样即使没有网络也可以离线浏览l 支持客户端证书l 支持通过代理发起Http请求l 支持带宽限制。在iOS平台可以根据当前网络情况来自动决定是否限制带宽例如当使用WWAN(GPRS/Edge/3G)网络时限制而当使用WIFI时不做任何限制l 支持断点续传l 支持同步和异步请求2.1.1安装说明 如果想在iOS项目中使用ASIHTTPRequest需要在项目中进行简单的配置步骤如下 1) 添加文件 往一个Xcode项目中添加第三方类库文件有两种方式 1. 第一种方式在Finder中打开需要添加到文件或文件夹在Xcode中打开要添加文件的项目然后选中要添加的文件或文件夹将它从Finder中拖到Xcode中然后释放。在弹出的对话框中如果文件已经拷贝到了项目文件目录中则不需要选中“Copy items”的复选框如果文件没有拷贝到项目文件目录就需要选中“Copy items”的复选框这样Xcode会自动把文件复制到项目文件目录下。如下图所示 2. 第二种方式在Xcode中在要添加文件的分组下点右键选中“Add Files to “My Project”…”菜单在弹出的文件浏览对话框中选中要添加到文件或文件夹。如果要添加文件已经拷贝到了项目文件目录中则不需要选中“Copy items”的复选框如果文件没有拷贝到项目文件目录就需要选中“Copy items”的复选框这样Xcode会自动把文件复制到项目文件目录下。如下图所示 根据上面的说明添加ASIHTTPRequest相关文件到Xcode项目中所需文件列表如下 ASIHTTPRequestConfig.h ASIHTTPRequestDelegate.h ASIProgressDelegate.h ASICacheDelegate.h ASIHTTPRequest.h ASIHTTPRequest.m ASIDataCompressor.h ASIDataCompressor.m ASIDataDecompressor.h ASIDataDecompressor.m ASIFormDataRequest.h ASIInputStream.h ASIInputStream.m ASIFormDataRequest.m ASINetworkQueue.h ASINetworkQueue.m ASIDownloadCache.h ASIDownloadCache.m ASIAuthenticationDialog.h ASIAuthenticationDialog.m Reachability.h (在源码的 External/Reachability 目录下) Reachability.m (在源码的 External/Reachability 目录下) 2) 链接相关类库 1. 选中项目 2. 选中目标 3. 跳转到“Build Phases”标签 4. 展开“Link Binary With Libraries”分组 5. 点击“”添加类库 如下图所示 6. 从列表中选择CFNetwork.framework然后点击“Add”按钮。 7. 按照上一步相同的方法添加SystemConfiguration.framework, MobileCoreServices.framework,CoreGraphics.framework和libz.1.2.3.dylib这几个类库。 8. 添加完后可以将添加好的一起类库拖到Xcode项目的Frameworks目录下 2.1.2使用说明 ASIHTTPRequest有很多功能所有功能说明都可以在其官方网站的相关文档中查到限于篇幅本章仅简单介绍一下如何使用ASIHTTPRequest来进行同步Http请求和异步Http请求。在后面的章节中我们还会用到它的一些其他功能。 在使用ASIHTTPRequest之前请确认已经正确安装然后在需要应用它的代码文件头部加入 #import “ASIHTTPRequest.h” 这样就可以在代码中使用ASIHTTPRequest相关的类。 创建一个同步请求 这是ASIHTTPRequest最简单的一种使用模式发送startSynchronous消息后即开始在同一线程中执行HTTP请求线程将一直等待直到请求结束请求成功或者失败。通过检查error属性可以判断请求是否成功或者有错误发生。 要获取返回的文本信息调用responseString方法。如果下载的是二进制文件例如图片、MP3则调用responseData方法可以得到一个NSData对象。 - (IBAction)grabURL:(id)sender { NSURL *url [NSURL URLWithString:http://allseeing-i.com]; ASIHTTPRequest *request [ASIHTTPRequest requestWithURL:url]; [request startSynchronous]; NSError *error [request error]; if (!error) { NSString *response [request responseString]; } } 一般情况下应该优先使用异步请求代替同步请求当在主线程中使用ASIHTTPRequest同步请求应用程序的界面会锁定无法进行任何操作直到请求完成。 创建一个异步请求 上例中的同步请求如果换成异步方式来调用请求是在后台线程中运行当请求执行完后再通知调用的线程。这样不会导致主线程进行网络请求时界面被锁定等情况。 - (IBAction)grabURLInBackground:(id)sender { NSURL *url [NSURL URLWithString:http://allseeing-i.com]; ASIHTTPRequest *request [ASIHTTPRequest requestWithURL:url]; [request setDelegate:self]; [request startAsynchronous]; } - (void)requestFinished:(ASIHTTPRequest *)request { // 当以文本形式读取返回内容时用这个方法 NSString *responseString [request responseString]; // 当以二进制形式读取返回内容时用这个方法 NSData *responseData [request responseData]; } - (void)requestFailed:(ASIHTTPRequest *)request { NSError *error [request error]; } 转载于:https://www.cnblogs.com/zzzili/archive/2013/03/06/6685346.html