首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    NSURLSession与NSURLConnection区别

    从iOS9开始,NSURLConnection中发送请求的两个方法已经过期(同步请求,异步请求),初始化网络连接的方法也被设置为过期,系统不再推荐使用,建议使用NSURLSession发送网络请求。...创建的task都是挂起状态,需要resume才能启动。 当服务器返回的数据较小时,NSURLSession与NSURLConnection执行普通任务的操作步骤没有区别。...NSURLConnection不能进行这个配置,相比较与NSURLConnection依赖与一个全局的配置对象,缺乏灵活性而言,NSURLSession有很大的改进了。...干货开始 NSURLSession NSURLSession 为 HTTP 数据传输提供一系列的接口,而使用 NSURLSession 总共只需要三步: 创建NSURLSession对象 通过 NSURLSession... * 无法修改默认的连接行为  * 身份验证的能力有限  * 任务在后台时无法上传和下载  */ + (NSURLSession *)sharedSession; 2.自定义 Session 对象 /

    1.5K60

    iOS网络--『文件下载、断点下载』的实现(一):NSURLConnection

    我们需要做如下几步: 在接受到响应的时候,即在didReceiveResponse中创建一个空的沙盒文件,并且创建一个NSFilehandle类。...或者通过NSFilehandle的- (unsigned long long)seekToEndOfFile;方法,直接制定文件的写入位置为文件末尾。...Range请求头的格式为: Range: bytes=start-end 例如: Range: bytes=10-:表示第10个字节及最后个字节的数据。...所以我们需要做的步骤为: 添加需要实现断点下载的[开始/暂停]按钮。 设置一个NSURLConnection的全局变量。...如果继续下载,设置HTTP请求头的Range为当前已下载文件的长度位置到最后文件末尾位置。然后创建一个NSURLConnection发送异步下载,并监听代理方法。

    1.9K50

    AFNetworking源码探究(十四) —— AFSecurityPolicy与安全认证 (二

    ."); return NO; } 首先看一下判断条件,如果域名存在,且允许自建证书,且需要验证域名,且SSLPinningMode模式为AFSSLPinningModeNone或者添加到项目中的证书数量为...如果需要验证domain,那么就使用SecPolicyCreateSSL函数创建验证策略,其中第一个参数为true表示验证整个SSL证书链,第二个参数传入domain,用于判断整个证书链上叶子节点表示的那个...使用certificatesInBundle从你的目标加载证书,然后通过调用policyWithPinningMode:withPinnedCertificates来创建一个新的策略。...bridge_transfer id)SecCertificateCreateWithData(NULL, (__bridge CFDataRef)certificateData)]; } 把证书数据,用系统返回类型为SecCertificateRef...; } //完成挑战 if (completionHandler) { completionHandler(disposition

    95520

    HTTP协议中的401授权认证机制在iOS上的实现

    我们在用NSURLConnection或者NSURLSession进行HTTP请求时,有些URL因为需要授权认证而返回401,因此客户端需要在HTTP的请求头中带上用户和密码进行授权认证(具体查看这里)...我们称这些情况为服务端要求客户端接收认证挑战(AuthenticationChallenge)。...当我们使用NSURLConnection来请求需要挑战的页面的时delegate会先调用协议函数: (void)connection:(NSURLConnection*)connectionwillSendRequestForAuthenticationChallenge...cancelAuthenticationChallenge:(NSURLAuthenticationChallenge*)challenge; @end 我们再来捋顺一下逻辑,当我们发送请求到服务端时,服务端需要我们挑战时会在客户端创建一个挑战对象...,如果有凭证对象则会把凭证对象赋值给数据成员proposedCredential,建立挑战对象后判断当前有没有实现NSURLConnection的willSendRequestForAuthenticationChallenge

    1.3K30

    深入理解HTTPS及在iOS系统中适配HTTPS类型网络请求(下)

    简单理解,这个参数就是服务端发起的一个验证挑战,客户端需要根据挑战的类型提供相应的挑战凭证。...当然,挑战凭证不一定都是进行HTTPS证书的信任,也可能是需要客户端提供用户密码或者提供双向验证时的客户端证书。当这个挑战凭证被验证通过时,请求便可以继续顺利进行。...这个类可以简单理解为客户端创建的凭证信息,解析如下: //通过用户名和密码进行凭证的创建 - (instancetype)initWithUser:(NSString *)user password:(...APPID设备共享 }; 三、使用AFNetworking进行自签名证书HTTPS请求的认证     使用AFNetworking也可以很方便的进行自签名证书的认证,还以上一节博客搭建的HTTPS环境为例...NSArray *cerArray = @[caCert]; _manager.securityPolicy.pinnedCertificates = cerArray; SecCertificateRef

    74310

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

    pragma mark 实现方法 /** * 接收到响应的时候:创建一个空的沙盒文件 */ - (void)connection:(NSURLConnection...现在的苹果原生网络框架 -- NSURLSession 在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网路请求相关操作...),GET请求参数直接跟在URL后面 2)创建请求对象(默认包含了请求头和请求方法【GET】),此步骤可以省略 3)创建会话对象(NSURLSession) 4)根据会话对象创建请求任务(NSURLSessionDataTask...,并把参数转换为二进制数据设置为请求体 //1.创建会话对象 NSURLSession *session = [NSURLSession sharedSession];...//4.修改请求方法为POST request.HTTPMethod = @"POST"; //5.设置请求体 request.HTTPBody = [@"username

    3.4K30

    iOS-网络编程(二)文件上传和断点离线下载

    NSURLConnection的使用 使用NSURLConnection发送请求的步骤很简单 创建一个NSURL对象,设置请求路径 NSURL:请求地址 传入NSURL创建一个NSURLRequest...NSURLConnection发送请求 2.1 创建NSURLRequest ?...创建NSURLRequest NSURLRequest默认的请求方法是GET,当我们需要修改请求方法为POST的时候就要用可变的NSMutableURLRequest,并设置请求方式,请求头和请求体。...答案是可以的但是需要注意,initWithRequest会将方法会将NSURLConnection对象加入当前对应的RunLoop中,当我们在子线程中进行网络请求,默认子线程的RunLoop不会自动创建...NSURLConnection 文件上传 文件上传步骤 确定请求路径 根据URL创建一个可变的请求对象 设置请求对象,修改请求方式为POST 设置请求头,告诉服务器我们将要上传文件(Content-Type

    2.4K80

    iOS开发·由SDWebImage引发的知识点聚合与思考(最新呕心沥血之作)

    刚开始,我查阅了老版本的SDWebImage,发现NSURLConnection虽然会开几个新的子线程,但它的回调是工作在主线程,并指定创建时当前线程的工作mode为defaultMode,这时候,子线程如果真有...waitUntilDone参数解释: 当为YES,先让主线程运行selector中的一些操作,之后再进行当前线程中的操作。...当为NO,先进行当前线程中的操作,之后让主线程运行selector中的一些操作。 1....)会新开一个线程,NSURLConnection也再创建了两个新的子线程,但是最终的网络请求的回调(即最终的setImage部分)工作在主线程。...sharedSession]; // 创建下载任务,其中location为下载的临时文件路径 NSURLSessionDownloadTask *downloadTask = [session downloadTaskWithURL

    2.1K40

    iOS基础问答面试题连载(三)-附答案

    30.runloop的自动释放池什么时候创建释放? 31.请简单说明使用NSURLConnection发送网络请求的几种方法? 32.请简单说明GET请求和POST个请求有什么区别,如何选择?...确定请求路径(URL) 创建可变的请求对象(NSMutableURLRequest) 修改请求方法为POST请求 把参数拼接起来转换为二进制数据,设置请求体 使用NSURLConnection发送异步请求...确定请求路径(NSURL) 创建可变的请求对象(NSMutableURLRequest) 修改请求方法为POST(HTTPMethod) 把要传递的参数拼接,转换为二进制数据,设置为请求体(HTTPBody...确定上传请求的路径 (NSURL) 创建可变的请求对象(NSMutableURLRequest) 修改请求方法为POST 设置请求头信息(告知服务器端这是一个文件上传请求) 按照固定的格式拼接要上传的文件等参数...创建可变的请求对象,因为需要修改请求方法为POST,设置请求头信息 设置请求头这个步骤可能会被遗漏 要处理上传参数的时候,一定要按照固定的格式来进行拼接 需要采用合适的方法来获得上传文件的二进制数据类型

    86350

    一个创建自定义事件源的例子

    RunLoop 的适用场景 回顾一下上一篇文章的介绍,只有当你为你的应用创建子线程时,才可能需要显式的运行一个 RunLoop 。而主线程的 RunLoop 是自动启动循环。...这些回调会被 RunLoop 创建好的 AutoreleasePool 环绕着,所以不会出现内存泄漏,开发者也不必显示创建 Pool 了。...• NSURLSession 是 iOS7 中新增的接口,表面上是和 NSURLConnection 并列的,但底层仍然用到了 NSURLConnection 的部分功能 (比如 com.apple.NSURLConnectionLoader...当开始网络传输时,我们可以看到 NSURLConnection 创建了两个新线程:com.apple.NSURLConnectionLoader 和 com.apple.CFSocket.private...一个Demo 根据上面对NSURLConnection的介绍,我们模拟一个类似的设计来实现通过RunLoop来等待和处理事件。 第一步:创建任务线程 创建子线程,用于初始化一个接收自定义事件源。

    2.2K100
    领券