首页
学习
活动
专区
圈层
工具
发布

iOS开发·网络请求方法总结复习(NSURLConnection,NSURLSession,AFNetworking)

现在的苹果原生网络框架 -- NSURLSession 在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网路请求相关操作...关系如下: 2.1 GET请求(NSURLRequest默认设置) 使用NSURLSession发送GET请求的方法和NSURLConnection类似,整个过程如下: 1)确定请求路径(一般由公司的后台开发人员以接口文档的方式提供...]; //3.根据会话对象创建一个Task(发送请求) /* 第一个参数:请求路径 第二个参数:completionHandler回调(请求完成【成功|失败...*)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data { //3.当请求完成(成功|失败...AF封装了GET和POST操作的 -- AFHTTPSessionManager AFNetworking2.0和3.0区别很大,也是因为苹果废弃了NSURLConnection,而改用了NSURLSession

4K30

iOS-网络编程(三)AFNetworking使用

AFNetworking简单介绍 通过前面学习的HTTP协议的基本知识,GET/POST请求的区别,NSURLConnection 和 NSURLSession的使用,已经基本了解了网络请求的方法,但是相对使用比较麻烦...GET请求 AFHTTPSessionManager *manager =[AFHTTPSessionManager manager]; NSDictionary *dict = @{...文件上传 关于文件上传使用AFN就简单多了,也不需要我们去拼接请求体和请求文件参数啦,AFN内部已经帮我们拼接好了 方法一:formData 添加data形式数据 AFHTTPSessionManager...) { // 上传失败 NSLog(@"上传失败"); }]; 方法二:formData直接添加url AFHTTPSessionManager *manager...当使用NSURLSession来向HTTPS发送请求时,需要在NSURLSessionDataDelegate的代理方法didReceiveChallenge中,信任服务器并且创建证书返回服务器。

2.5K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS网络——AFNetworking AFHttpSessionManager源码解析

    你要知道的NSURLSession都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本系列文章主要讲解iOS中网络请求类NSURLSession...的使用方法进行详解,同时也会以此为扩展,讲解SDWebImage中图片下载功能的源码分析,讲解AFNetworking相关源码分析。...,只需要传入要下载文件的NSURL对象,在传入几个回调块就能将文件下载到指定的目录中,并且可以监控下载进度,真的很方便,但NSURLSessionDataTask创建的任务默认是GET请求,如果需要其他如...} return nil; } //序列化成功,调用父类的方法获取dataTask __block NSURLSessionDataTask *dataTask...通过AFURLSessionManager和AFHTTPSessionManager源码的阅读可以学习到AFNetworking在代码设计方面的优点,以及对NSURLSession的使用更清晰了。

    1.8K80

    iOS开发·第三方网络下载处理框架:AFNetworking网络下载处理(官方文档翻译篇)

    框架体系 1.1 NSURLSession AFURLSessionManager AFHTTPSessionManager 1.2 序列化 ...使用方法 2.1 AFURLSessionManager AFURLSessionManager用于,基于一个指定的NSURLSessionConfiguration对象,创建和管理NSURLSession...您可以使用可达性来决定,何时应自动重试请求。 可达性通知(连接可用)是发起重试时间的好时机,虽然它可能仍然失败。 网络可达性,是确定请求可能失败原因的一个有用工具。...在网络请求失败之后,告诉他们离线的用户比给予他们一个更为技术性但准确的错误,比如“请求超时”。 另见WWDC 2012会议706“网络最佳实践”。...2.4.1 允许无效的SSL证书 AFHTTPSessionManager * manager = [AFHTTPSessionManager manager ]; manager.securityPolicy.allowInvalidCertificates

    96030

    GCD信号量-dispatch_semaphore_t

    任务T和任务T'的关系 再不明白请看实例: 例如以下情况:使用线程组异步并发执行两个AFN网络请求,然后网络请求不管成功或失败都会各自回调主线程去执行success或者failure的block中的任务...*manager = [AFHTTPSessionManager manager]; [manager GET:urlString_1 parameters:dictionary...}]; // 在网络请求任务成功/失败之前,一直等待信号量(相当于阻塞,不会执行下面的操作) dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER...}]; // 在网络请求任务成功/失败之前,一直等待信号量(相当于阻塞,不会执行下面的操作) dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER...- (NSString *)getSSOToken { NSURLSession *session = [NSURLSession sharedSession]; NSString *accessToken

    8.9K21

    【IOS】总结-AFNetworking学习笔记

    起初有人推测,NSURLSession 的出现将使AFNetworking 不再有用。但实际上,虽然它们有一些重叠,AFNetworking还是可以提供更高层次的抽象。...现在你可以直接使用它,或者使用 AFHTTPRequestOperationManager /AFHTTPSessionManager 的属性。...handler(); 9. } 10. } 另外无论下载成功与否,以下方法都会被调用: [objc] view plaincopy 1. /* 完成下载任务,无论下载成功还是失败都调用该方法...didFinishDownloadingToURL:(NSURL *)location; 无论下载成功或失败都会调用的方法,类似于try-catch-finally中的finally语句块的执行。...如果下载成功,那么error参数的值为nil,否则下载失败,可以通过该参数查看出错信息: [objc] view plaincopy 1. /* Sent as the last message related

    1.9K30

    iOS HTTPS 请求 Code=-999 cancelled

    使用AFN请求网络一直好好的,无论是http,还是https都正常,突然有一天服务器那边不知道调整了什么(可能是服务器SSL证书到期),每次请求都是返回: Error Domain=NSURLErrorDomain...简书 因为一直使用的是正常申请的https证书,主要是现在用自建证书的公司越来越少了,除了部分个人为了玩。。。因为很多地方都提供免费的。。。...但是如果出现了如上错误可以简单的设置APP端直接信任证书就好: 方法一、一般就是设置AFHTTPSessionManager的securityPolicy OC: AFHTTPSessionManager...*manager = [AFHTTPSessionManager manager]; AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy...那么也可以重写下面的方法来解决 OC: - (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge

    3.2K20

    iOS NSPROXY ARC填坑记

    首先,苹果在 iOS9 之后已经放弃了 NSURLSession所以在现在的实际开发中,一般使用的是 iOS7 之后推出的NSURLSession。...现象比较好复现 下一步,定位代码 AFNetwork的代码层数比较多,但核心的方法不多,网上有很多的源码讲解的文章,大家可以参考下 https://www.jianshu.com/p/a360140bf220... ,还有很多分章节分类名进行解析,这里就不一一分享了 ,通过get方法回溯,找到AFNetwork对应使用NSURLSession建立连接的地方 这里有个知识点AFURLSessionManager是AFHTTPSessionManager...父类,NSURLSession的申请在AFURLSessionManager进行了实现,如下 可以看到AFNetwork也使用了session,只是实现的方式不一样,除了加入默认配置文件,还实现了delegate...成功了!

    72220

    iOS使用自签名证书实现HTTPS请求

    好处是不需要花钱购买,但使用这种证书是不会受信任的,所以需要我们在代码中将该证书配置为信任证书。这就是本文的主要目的。如12306官网的证书。...这里有个地方要注意:苹果的ATS要求服务端必须支持TLS 1.2或以上版本;必须使用支持前向保密的密码;证书必须使用SHA-256或者更好的签名hash算法来签名,如果证书无效,则会导致连接失败。...执行成功后会生成一个.jks文件和一个以你的ip或域名命名的文件夹,文件夹中有一个.cer的证书,这边的.jks文件将在服务端使用.cer文件将在客户端使用,到这里证书的准备工作就完成了。...使用NSURLSession进行请求 NSString *urlString = @"https://xxxxxxx"; NSURL *url = [NSURL URLWithString:urlString...,所以这边我就修改他的源码,当有一个校验成功时即算成功。

    2.7K100
    领券