HTTP操作之ASIHTTPRequest(一)

网友投稿 662 2022-10-04

HTTP操作之ASIHTTPRequest(一)

HTTP操作之ASIHTTPRequest(一)

ASIHTTPRequest是一个第三方开源项目,在现在的IOS应用中多使用到这个开源类库来提供网络操作,相比于SDK提供的网络操作类库,ASIHTTPRequest使用上更加方便、效率更高,同时功能也非常强大。这是ASIHttpRequest的官网:​​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 using​​multipart/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的过程。下面看下工程目录结构:

如果是IOS5的版本,可能集成过程中会遇到一些问题,我也找到了一些解决方案,比如,集成完后可能会遇到​​编译提示找不到"libxml/HTMLparser.h"​​​,解决这个问题可以参考这个链接中所说的方法​​​​另外可能会遇到头文件找不到的情况,如果遇到这种问题,将ASIHTTPRequest目录中的Tests目录删除即可,Tests目录下的文件是用GHUnit框架写的一个测试用例,正式使用中不需要用到。

2.使用ASIHTTPRequest进行网络操作

首先,在需要使用该类库的文件中引入头文件

#import "ASIHTTPRequest.h"

然后编写执行网络请求操作的代码:

[cpp] ​​view plain​​​ ​​​copy​​ 1. - (IBAction)startAsycRequest:(id)sender {2. 3. "5. __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];6. 7. //使用OC中新增的bolck语法(块语法),可以实现并行编程8. //以下方法是在请求完成后会被调用的块9. [request setCompletionBlock:^{10. //获取请求返回结果11. NSString *response = [request responseString];12. "%@",response);13. //如果是数据集,可以使用以下方式返回结果14. // NSData *responseData = [request responseData];15. 16. }];17. 18. //如果请求失败,可以在这里进行处理19. [request setFailedBlock:^{20. // NSError *error = [request error];21. 22. }];23. 24. //开启一个异步请求(这里只说明了异步请求的使用,因为一般情况下的网络请求都采用异步的方式,否则会阻塞UI)25. [request startAsynchronous];26. }

执行后打印出来的结果是一个网页的完成HTML信息:

下一章将继续学习ASIHTTPRequest的其他功能,后续还会结合之前的知识做一个小Demo来练习和巩固所学。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序:使用 wx:key 提升 wx:for 的渲染效率(小程序使用时间查询)
下一篇:存货核算学习(一)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~