自从在Windows上升级到curl 8.x以来,curl已停止使用HTTPS返回内联网网站的输出变量,我已经针对知名互联网网站(例如google)进行了测试,它按预期工作。
我在网上进行了大量搜索,但尚未找到任何根本原因。我还确认使用旧版本的curl(7.x)可以按预期工作,但我无法继续使用旧版本。我无法确认这是一个未记录的功能(错误)还是一个功能。
无论是直接在 Windows CMD 线路上调用还是通过 Windows 批处理脚本调用,问题都是相同的
卷曲-V 卷曲 8.7.1 (Windows) libcurl/8.7.1 Schannel zlib/1.3 WinIDN 发布日期:2024-03-27 协议: dict file ftp ftps http https imap imaps ipfs ipns mqtt pop3 pop3s smb smbs smtp smtps telnet tftp
这里curl正在调用不安全的(http)URL(请注意,响应代码(302)可以在底部看到)
curl -w "%{response_code}\n" http://www.notarealurl.com
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a[TEXT REMOVED]>here</a></p>
</body></html>
302
此处,curl 正在调用安全 (https) URL(请注意,响应代码不会作为变量返回,但可以在标头中看到)
curl -w "%{response_code}\n" "https://www.notarealurl.com"
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved.[TEXT REMOVED]</p>
</body></html>
该问题已在 Curl 8.9.1 中得到解决