使用VBA for Excel的HTTPS POST请求

我使用“WinHttp.WinHttpRequest.5.1”从Excel中的VBA发送HTTP POST请求。 但我无法设置为HTTPS,因为我收到SSL证书错误。

你将使用什么VBA代码来协商从Excel中的VBA到一个网站的SSL连接?

WinHttpRequest对象有一个SetClientCertificate方法。 尝试从MSDN采取这个代码示例(我试图适应VBA):

' Instantiate a WinHttpRequest object. ' Dim HttpReq as new ActiveXObject("WinHttp.WinHttpRequest.5.1") ' Open an HTTP connection. ' HttpReq.Open("GET", "https://www.test.com/", false) ' Select a client certificate. ' HttpReq.SetClientCertificate("LOCAL_MACHINE\Personal\My Certificate") ' Send the HTTP Request. ' HttpReq.Send() 

虽然我没有使用COM组件(WinHttpRequest),但似乎您需要在调用send之前调用SetClientCertificate ,按照链接。

这有帮助吗?

我有相同的情况(从Excel中的VBA发送一个HTTP请求); 我创build了三个对象:

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

– 对于http请求类,和

 Set fsobj = CreateObject("Scripting.FileSystemObject") Set txtobj = fso.OpenTextFile("C:\PKCERT.PEM") 

– 进入一个variables的证书内容,将其传递给HttpReq.SetClientCertificate

 certificate_data = txtobj.ReadAll HttpReq.SetClientCertificate (certificate_content) 

所以我可以像往常一样发送包括公钥证书在内的请求,

 HttpReq.Send 

PS我在http://www.808.dk/?code-simplewinhttprequestfind了一个脚本 – 在我的情况下,它工作得很好,希望在你的。