首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GET使用NSURLSession成功,但使用AFHTTPSessionManager失败

GET请求是HTTP协议中的一种请求方法,用于向服务器获取资源。NSURLSession是苹果提供的用于网络请求的API,而AFHTTPSessionManager是基于NSURLSession封装的网络请求库。

在使用NSURLSession进行GET请求时,可以按照以下步骤进行操作:

  1. 创建NSURLSession对象:let session = URLSession.shared
  2. 创建URL对象:guard let url = URL(string: "http://example.com/api/resource") else { return }
  3. 创建URL请求对象:let request = URLRequest(url: url)
  4. 发送GET请求:let task = session.dataTask(with: request) { (data, response, error) in if let error = error { print("请求失败:\(error)") } else if let data = data { // 处理返回的数据 } } task.resume()

以上代码使用NSURLSession发送GET请求,并通过闭包处理请求的响应结果。在闭包中可以对返回的数据进行处理,例如解析JSON数据、更新UI等。

相比于NSURLSession,AFHTTPSessionManager是一个更高级的网络请求库,它封装了NSURLSession的使用细节,并提供了更方便的API。使用AFHTTPSessionManager进行GET请求的代码示例如下:

  1. 导入AFNetworking库:import AFNetworking
  2. 创建AFHTTPSessionManager对象:let manager = AFHTTPSessionManager()
  3. 发送GET请求:manager.get("http://example.com/api/resource", parameters: nil, headers: nil, progress: nil, success: { (task, responseObject) in // 请求成功,处理返回的数据 }) { (task, error) in // 请求失败,处理错误信息 }

以上代码使用AFHTTPSessionManager发送GET请求,并通过闭包处理请求的成功和失败情况。在成功闭包中可以对返回的数据进行处理,而在失败闭包中可以处理错误信息。

推荐的腾讯云相关产品:腾讯云CDN(内容分发网络),详情请参考腾讯云CDN产品介绍

腾讯云CDN是一种分布式部署的网络加速服务,通过将内容缓存到离用户最近的节点上,提供快速的内容传输和访问体验。它可以加速网站、应用、音视频等内容的传输,提高用户访问速度和体验。腾讯云CDN具有高可用性、高性能、高安全性等优势。

腾讯云CDN的应用场景包括但不限于:

  • 网站加速:加速网站的静态资源(如图片、CSS、JavaScript等)的传输,提高网站的访问速度和用户体验。
  • 视频点播加速:加速视频点播服务,提供流畅的视频播放体验。
  • 直播加速:加速直播流的传输,提供低延迟、高清晰度的直播体验。
  • 软件分发加速:加速软件的分发,提供快速的下载速度。

以上是关于GET请求使用NSURLSession成功,但使用AFHTTPSessionManager失败的答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

3.3K30

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中,信任服务器并且创建证书返回服务器。

2K70

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.6K80

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.6K21

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

69730

【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.4K30

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

2.7K20

iOS NSPROXY ARC填坑记

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

52320

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...,所以这边我就修改他的源码,当有一个校验成功时即算成功

1.8K100
领券