Chilkat的DownloadBd接口请求HTTPS地址时为何自动使用80端口?
问题1:传入HTTPS协议URL后仍尝试用80端口发起请求的原因
你传入的URL使用了不符合标准规范的反斜杠(\),格式为https:\\*********.exe,Chilkat的URL解析逻辑无法识别这类非标格式,错误将https识别为请求的主机名,没有匹配到HTTPS协议标识,因此默认使用HTTP协议的80端口发起请求,同时错误开启了SSL配置,就出现了日志中SSL走80端口、解析https主机名失败的报错。
谷歌浏览器的URL容错机制更强,会自动将反斜杠替换为标准正斜杠后再发起请求,因此可以正常访问。
问题2:强制Chilkat使用443端口走SSL协议发起请求的方法
- 优先修正URL格式:将URL中的反斜杠全部替换为标准正斜杠,确保URL格式为
https://域名/资源路径,符合规范的URL会被Chilkat自动识别为HTTPS协议,默认使用443端口发起SSL请求,无需额外配置。 - 如需手动强制指定配置,可在调用
DownloadBd接口前对Chilkat Http对象做如下设置:- 设置
Ssl属性为True,强制开启SSL连接 - 设置
Port属性为443,指定请求端口为HTTPS默认端口
- 设置
- 额外校验:可提前调用Chilkat内置的URL解析方法,验证传入的URL是否被正确识别协议、主机名和端口,提前规避格式类错误。
内容的提问来源于stack exchange,提问作者Michał Lipok
相关产品推荐
相关产品推荐

