AFNetworking框架使用浅析.doc_第1页
AFNetworking框架使用浅析.doc_第2页
AFNetworking框架使用浅析.doc_第3页
AFNetworking框架使用浅析.doc_第4页
AFNetworking框架使用浅析.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录: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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论