如何使用Inetc向网站发起普通HTTP请求以解决SendRequest报错
inetc
SendRequest error 解决方案 Haya你好,目前我正在解决代码中出现的
SendRequest error相关问题,我认为原因是我使用的网站的证书无法被inetc验证或存在其他类似问题。我了解到可以通过使用普通HTTP请求修复该问题,请问我应该如何操作?
降级为HTTP请求的操作方法
NSIS inetc插件场景
直接修改请求URL的前缀,将https://替换为http://即可,代码示例:
原代码:inetc::get "https://www.gnu.org/licenses/gpl-3.0.txt" "$INSTDIR\license.txt" /end
修改后:inetc::get "http://www.gnu.org/licenses/gpl-3.0.txt" "$INSTDIR\license.txt" /endWinINet API 原生调用场景
- 将请求目标URL的
https://前缀替换为http:// - 显式指定请求端口为80,替换原443端口配置即可完成修改
- 将请求目标URL的
更安全的替代方案(无需降级HTTP)
如果你不想使用明文HTTP传输,也可以直接关闭inetc的证书校验逻辑,不需要修改请求协议:
- NSIS inetc插件直接在请求参数中添加
/no_ssl_verify即可,示例:inetc::get "https://www.gnu.org/licenses/gpl-3.0.txt" "$INSTDIR\license.txt" /no_ssl_verify /end - WinINet API场景可在调用
InternetOpenUrl前,通过InternetSetOption设置INTERNET_OPTION_SECURITY_FLAGS,关闭证书合法性校验位即可。
注意:降级HTTP或关闭证书校验都会带来数据被窃听、篡改的风险,生产环境优先选择更新本地根证书库完成合法校验
内容的提问来源于stack exchange,提问作者user11718125
相关产品推荐
相关产品推荐

