全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录:1、为什么要用AFNetworking2、AFNetworking的用法一、为什么要用AFNetworking在ios开发中,一般情况下,简单的向某个web站点简单的页面提交请求并获取服务器的响应,用xcode自带的NSURLConnection是能胜任的。但是,在绝大部分下我们所需要访问的web页面则是属于那种受到权限保护的页面,并不是有一个简单的URL可以访问的。这就涉及到了Session和Cookie的处理了,在此时使用NSURLConnection也是能够达到要求的,只是其中处理起来的复杂度和难度就提升了。为了更好的处理向Web站点的请求,包括处理Session,Cookie等细节问题,使用AFNetworking则是更好的选择,他可以用于发送HTTP请求,接收HTTP的响应,但是不会缓存服务器的响应,不能执行HTML页面中的JAvascript代码,同时,AFNetworking还内置支持JSON,plist文件和XML文件的解析,使用比较方便。扩展:1、Session:中文有译作时域的,就是只某个客户端在访问服务器起到停止访问这一段的时间间隔被称为时域。 2、Cookie:由服务器发送给客服端,把Cookie的key:value值储存在本地文件夹下,当下次请求的时候能够直接发送Cookie获得权限验证二、AFNetworking的用法1、提交GET请求和提交POST请求AFNetworking是第三方的框架,所以需要开发者自行下载,安装。并在AFNetworking.h文件导入#import“AFHTTPRequestOpeartionManager.h ”,把AFNetworking.h头文件放入prefix文件中。a、创建AFHTTPRequestOpeartionManger对象b、根据服务器内容的不同,为AFHTTPRequestOpeartionManger对象指定不同的解析器,该对象默认的解析器是JSON和Plist文件解析器。如果服务器的数据是XML格式则需要手动的更改解析器c、发送GET请求:用Manager对象调用GET:parameters:success:failure:方法即可,success代码块和failue代码块在网络请求成功/失败过后调用。d、success:参数指定了代码块中处理服务器响应成功的正确数据,failue:参数指定了代码块中处理服务器响应失败的错误数据、AFHTTPRquestOperationManager包含了常见的HTTP访问web站点的模式,有创建请求,连续的响应,网络类型监视以及安全。“GET”:objcview plaincopy1. /创建AFHTTPRequestOperationManager对象2. AFHTTPRequestOperationManager*manager=AFHTTPRequestOperationMangermanager;3. /调用get方法4. managerGET:“/resources.json”parameters:parameters5. /加载成功的代码块,可以接收数据6. success:(AFHTTPRequestOperation*operation,idresponseobject)7. NSLog(“json“:%”,responseObject);8. failure:(AFHTTPRequestOperation*operation,NSError*error)9. NSLog(“Error:%”,error);10. ;”POST“:URL-Form-Encoded Request URL编码请求类型objcview plaincopy1. AFHTTPRequestOperationManager*manager=AFHTTPRequestOperationManagermanager;2. NSDictionary*parameters=foo:bar;3. managerPOST:/resources.jsonparameters:parameterssuccess:(AFHTTPRequestOperation*operation,idresponseObject)4. NSLog(JSON:%,responseObject);5. failure:(AFHTTPRequestOperation*operation,NSError*error)6. NSLog(Error:%,error);7. ;POST多个请求objc view plaincopy1. AFHTTPRequestOperationManager*manager=AFHTTPRequestOperationManagermanager;2. NSDictionary*parameters=foo:bar;3. NSURL*filePath=NSURLfileURLWithPath:file:/path/to/image.png;4. managerPOST:/resources.jsonparameters:parametersconstructingBodyWithBlock:(idformData)5. formDataappendPartWithFileURL:filePathname:imageerror:nil;6. success:(AFHTTPRequestOperation*operation,idresponseObject)7. NSLog(Success:%,responseObject);8. failure:(AFHTTPRequestOperation*operation,NSError*error)9. NSLog(Error:%,error);10. ;2、创建一个下载文件的任务AFURLSessionManager创建并完善了一个NSURLSession的对象基于遵从NSURLSessionDelegate与NSURLSessionDataDelegate协议NSURLSessionConfigration对象。objcview plaincopy1. NSURLSessionConfiguration*configuration=NSURLSessionConfigurationdefaultSessionConfiguration;2. AFURLSessionManager*manager=AFURLSessionManagerallocinitWithSessionConfiguration:configuration;3. 4. NSURL*URL=NSURLURLWithString:/download.zip;5. NSURLRequest*request=NSURLRequestrequestWithURL:URL;6. 7. NSURLSessionDownloadTask*downloadTask=managerdownloadTaskWithRequest:requestprogress:nildestination:NSURL*(NSURL*targetPath,NSURLResponse*response)8. NSURL*documentsDirectoryURL=NSFileManagerdefaultManagerURLForDirectory:NSDocumentDirectoryinDomain:NSUserDomainMaskappropriateForURL:nilcreate:NOerror:nil;9. returndocumentsDirectoryURLURLByAppendingPathComponent:responsesuggestedFilename;10. completionHandler:(NSURLResponse*response,NSURL*filePath,NSError*error)11. NSLog(Filedownloadedto:%,filePath);12. ;13. downloadTaskresume;3、创建一个上传文件的任务objcview plaincopy1. NSURLSessionConfiguration*configuration=NSURLSessionConfigurationdefaultSessionConfiguration;2. AFURLSessionManager*manager=AFURLSessionManagerallocinitWithSessionConfiguration:configuration;3. 4. NSURL*URL=NSURLURLWithString:/upload;5. NSURLRequest*request=NSURLRequestrequestWithURL:URL;6. 7. NSURL*filePath=NSURLfileURLWithPath:file:/path/to/image.png;8. NSURLSessionUploadTask*uploadTask=manageruploadTaskWithRequest:requestfromFile:filePathprogress:nilcompletionHandler:(NSURLResponse*response,idresponseObject,NSError*error)9. if(error)10. NSLog(Error:%,error);11. else12. NSLog(Success:%,response,responseObject);13. 14. ;15. uploadTaskresume;4、处理JSON或Plist响应IOS应用在处理JSON和Plist响应的时候可以十分轻便将其转换成NSDictionary对象或者NSArray对像,AFHTTPRequestOpeartionManager默认就可以处理JSON或Plist响应,也就是说当我们response.MIMEType为appication/json、text/json,AFHTTPRequestOpeartionManager默认就可以处理,无需再次指定服务器响应解析器。objcview plaincopy1. 2. AFHTTPRequestOperationManager*manager=AFHTTPRequestOperationManagermanager;3. /manager.responseSerializer=AFHTTPResponseSerializerserializer;4. NSDictionary*parameter=location:长沙,output:json,ak:jlflVx1VTUahj05Q7GfB7PCf;5. managerGET:/telematics/v3/weather?parameters:parametersuccess:(AFHTTPRequestOperation*operation,idresponseObject)6. NSLog(OK);7. dic=responseObject;8. NSArray*key
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川安和精密电子电器股份有限公司招聘工程设备维修技术员助工等岗位8人笔试模拟试题及答案解析
- 教育医疗费用离婚协议书
- 2026山东青岛红蝶新材料有限公司招聘21人考试参考题库及答案解析
- 2026龙门农商银行社会招聘4人笔试参考题库及答案解析
- 改性合成树脂装置操作工安全风险测试考核试卷含答案
- 2026山东菏泽外国语学校招聘20人考试备考题库及答案解析
- 2026年福建省晋江市东石中学秋季教师招聘意向摸底笔试备考试题及答案解析
- 铸造碳化钨制管工岗前创新方法考核试卷含答案
- 2026年乌鲁木齐市第126中学教育集团招聘考试模拟试题及答案解析
- 人力采伐工岗前内部考核试卷含答案
- 物料降本规划方案
- Python经济大数据分析 课件 第7章 Python应用航空公司客户价值分析
- 云南德福环保有限公司2000t-a含油硅藻土处理和综合利用工程 环评报告
- 【实用资料】马克思主义基本原理绪论PPT
- 安全检查流程图
- GB/T 1921-2004工业蒸汽锅炉参数系列
- 基于web计算机应用竞赛管理系统论文
- 静电防护安全知识精选优秀课件
- 2023年河南信息统计职业学院单招职业适应性测试笔试题库及答案解析
- 工程质量的检查与验收方案
- 2022基本公共卫生知识考试题库及答案
评论
0/150
提交评论