HTTPS请求处理
2024-08-28 21:41:31
HTTPS请求的时候:
[1]证书是受信任的,什么都不用做
[2]证书是不受信任的,是自签名的
(1)修改配置文件,禁用ATS特性
(2)信任并安装数字证书
NSURLSession的示例代码如下:
#import "ViewController.h" @interface ViewController ()<NSURLSessionDataDelegate> @end @implementation ViewController - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
NSURL *url = [NSURL URLWithString:@"https://kyfw.12306.cn/otn/"];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[NSOperationQueue mainQueue]];
[[session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
}] resume];
} - (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler {
NSLog(@"%@", challenge.protectionSpace);
/*
NSURLSessionAuthChallengeUseCredential = 0, Use the specified credential, which may be nil
NSURLSessionAuthChallengePerformDefaultHandling = 1, Default handling for the challenge - as if this delegate were not implemented; the credential parameter is ignored.
NSURLSessionAuthChallengeCancelAuthenticationChallenge = 2, The entire request will be canceled; the credential parameter is ignored.
NSURLSessionAuthChallengeRejectProtectionSpace = 3, This challenge is rejected and the next authentication protection space should be tried; the credential parameter is ignored.
*/
NSURLCredential *credentail = [[NSURLCredential alloc] initWithTrust:challenge.protectionSpace.serverTrust];
completionHandler(NSURLSessionAuthChallengeUseCredential, credentail);
}
AFN的设置
最新文章
- php经典算法(转载)
- Jmeter学习(三十三)调试工具Debug Sampler
- MVCC浅析(转)
- Bootstrap 容器(Container)及网格说明-(二)
- Python软件目录结构规范
- Java入门(二):注释和基本数据类型
- python 参数传递 传值还是传引用
- font-smoothing使用后字体看起来会更清晰舒服
- 网络编程基础【day10】:IO多路复用
- python调用nmap探测局域网设备
- Grunt、Gulp区别 webpack、 requirejs区别
- (转)python3 urllib.request.urlopen() 错误UnicodeEncodeError: &#39;ascii&#39; codec can&#39;t encode characters
- PosgreSQL 9.0 High Performance中文版瑕疵
- avascript小技巧
- LR参数和变量
- 企业和开发人员究竟该如何适应web标准?
- 仿知乎日报App
- js使用浏览器的另存为下载文件
- Codeforces 1023 B.Pair of Toys (Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Fi)
- 生成静态页面方法 .NET