ios – 如何为HTTP请求而不是DNS指定服务器IP

ios – 如何为HTTP请求而不是DNS指定服务器IP,第1张

概述我想要的是: 为NSMutableURLRequest指定服务器IP以避免localDNS查询. 常用方法: 替换URL中的主机字段,并为HTTP请求指定HOST标头字段. request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://1.1.1.1/path"]];[request setVa 我想要的是:

为NSMutableURLRequest指定服务器IP以避免localDNS查询.

常用方法:

替换URL中的主机字段,并为http请求指定HOST标头字段.

request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://1.1.1.1/path"]];[request setValue:@"www.a.com" forhttpheaderFIEld:@"host"];

问题:

如果我的服务器服务于多个域,则服务器将返回我的请求的默认证书. SNI仅在网址中找到主机时才有效.

所以,如果我想在问题场景中实现我想要的任何建议.

解决方法 实际上,主机头用于确定证书.服务器永远不会看到完整的URL.如果URL包含IP地址,则IIRC,NSURLSession和朋友通常不会覆盖用户指定的主机头.但是,它应该是“主机”中的大写“H”.因为该标题位于您不应该触及的标题列表中,所以大写可能很重要.

如果修复大小写不起作用,您可以考虑其他几种方法:

>在不同的头字段中添加主机名,然后使用自定义身份验证处理委托方法自行显式验证该证书的域,如果它验证并且它是您的某个证书并且它是针对您的某个域,则允许即使证书的域与请求的域不匹配,也要继续.>在您的应用程序中包含一个基本代理,并将会话配置为在按名称连接到该主机时始终使用它.在代理中,将正常的TCP / IP Nsstream打开到正确的IP地址并来回传递数据.>编写一个自定义httpS客户端,该客户端支持足够的功能来处理您正在执行的任何 *** 作.

总结

以上是内存溢出为你收集整理的ios – 如何为HTTP请求而不是DNS指定服务器IP全部内容,希望文章能够帮你解决ios – 如何为HTTP请求而不是DNS指定服务器IP所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1003084.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存