VBA | WinHttpRequest.5.1 | 忽略 SSL 错误不再起作用

Dom*_*nik 3 error-handling excel ssl vba winhttprequest

我正在使用 WinHttpRequest.5.1 对象在 excel 365 (16.0.11328.20562) vba 脚本上发出一些 https 请求。

我知道服务器的证书会因为CN错误而发生错误。因此,我使用忽略 ssl 错误的选项来抑制此错误。

我发誓以下代码在两周前有效,现在它抛出此错误:

运行时错误 -2147012727 (80072f89) 证书无效

这是代码(包括:Microsoft WinHTTP 服务,版本 5.1 [winhttpcom.dll]):

Sub test()

   Dim url As String
   url = "https://someserver:5096/api/v1/$metadata"

   Dim winHttpReq As WinHttpRequest
   Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")

   'Ignoriere SSL-Errors
   winHttpReq.Option(4) = 13056

   'I also tested
   'winHttpReq.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = SslErrorFlag_Ignore_All
   'winHttpReq.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = SslErrorFlag_CertCNInvalid

   winHttpReq.Open "GET", url, False

   winHttpReq.Send ("")

   Debug.Print winHttpReq.ResponseText

End Sub
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我会收到证书无效错误,尽管 ssl-errors 应该被忽略。

我希望您知道为什么会发生这种情况,并提前感谢您的回答。

小智 5

这对我来说非常有效

winHttpReq.Option(4) = &H3300
Run Code Online (Sandbox Code Playgroud)

代替

winHttpReq.Option(4) = 13056
Run Code Online (Sandbox Code Playgroud)