vba - 证书无效或不正确 "WinHttp.WinHttpRequest.5.1"

标签 vba request winhttp

我正在运行一个调用函数以从服务器检索信息的宏。我正在使用“WinHttp.WinHttpRequest.5.1”进行连接。对于我 95% 的请求返回有效结果,该宏工作正常。但另外 5% 导致了以下错误:

Run time error: authority certificate not valid or incorrect -2147012851(80072f0d)

每当发生此错误时,我都会转到该站点登录,然后从它停止的地方执行我的代码。然后导致错误的相同请求返回有效结果

我在代理后面。

Set htttpObj = CreateObject("WinHttp.WinHttpRequest.5.1")

url = PrefixoUrl + "/Clientes/ServerToExcel/S2E_001.php?func1=" & func1 & "&func2=" & func2
'time out
htttpObj.SetTimeouts 10000, 10000, 10000, 300000   

'open
If proxyNeeded And authNeeded Then
    htttpObj.Open "POST", url, False, ProxyUser, ProxyPass         
Else
    htttpObj.Open "POST", url, False
End If

'header
htttpObj.setRequestHeader headerName, headerValue

'Proxy IP
If proxyNeeded Then
    htttpObj.setProxy 2, ProxyIp + ":" + ProxyPort
End If

'proxy credentials
If proxyNeeded And authNeeded Then
    HTTPREQUEST_SETCREDENTIALS_FOR_PROXY = 1
    htttpObj.SetCredentials ProxyUser, ProxyPass, HTTPREQUEST_SETCREDENTIALS_FOR_PROXY
End If

'Send
htttpObj.Send ("func1=" & func1 & "&func2=" & func2 & "&username=" & loginSite & "&psd=" & passSite)

知道为什么会发生这种情况或如何处理此错误吗?

最佳答案

我对关于证书的弹出消息有同样的问题。我找到了一个解决方案,它对我有用。在我的代码中它看起来像这样:

Set xmlhttp = CreateObject("WinHttp.WinHttpRequest.5.1")

xmlhttp.option(6) = False
xmlhttp.Open "GET", url, False
xmlhttp.send

那一行 xmlhttp.option(6) = False 关闭了有关证书的消息。

关于vba - 证书无效或不正确 "WinHttp.WinHttpRequest.5.1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31811788/

相关文章:

vba用一个替换两个引号/生成txt文件

ios - 将请求数据从 UIPageViewController 传递到 subview

c++ - 是否有用于获取代理用户名和密码的标准 Windows 对话框?

c++ - 两个线程使用相同的 websocket 句柄——这会导致任何问题吗?

vba - 性能优化

excel - 当值绑定(bind)到 Excel 或 Access 中的 vbNewLine 时,如何比较 VBA 中的两个值

zend-framework - 在前端 Controller 插件 Zend 中重定向

linux - 在 ping 中重播和请求采用相同的路由?

vba - 不理解为什么 WinHTTP 不验证某些 HTTPS 资源

excel - 如何在组合框中找到所选选项的索引?