信创国产化替换如何推动企业自主创新与市场竞争力提升
662
2022-10-04
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 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的过程。下面看下工程目录结构:
如果是IOS5的版本,可能集成过程中会遇到一些问题,我也找到了一些解决方案,比如,集成完后可能会遇到编译提示找不到"libxml/HTMLparser.h",解决这个问题可以参考这个链接中所说的方法另外可能会遇到头文件
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~