使用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了一个脚本 – 在我的情况下,它工作得很好,希望在你的。