我使用「WinHttp.WinHttpRequest.5.1」從Excel中的VBA發送HTTP POST請求。 但由於我收到SSL證書錯誤,所以我無法設置爲HTTPS。使用VBA for Excel的HTTPS POST請求
您將使用什麼VBA代碼來協商從Excel中的VBA到一個網站的SSL連接?
我使用「WinHttp.WinHttpRequest.5.1」從Excel中的VBA發送HTTP POST請求。 但由於我收到SSL證書錯誤,所以我無法設置爲HTTPS。使用VBA for Excel的HTTPS POST請求
您將使用什麼VBA代碼來協商從Excel中的VBA到一個網站的SSL連接?
The WinHttpRequest object has a SetClientCertificate method。嘗試從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),看來你打電話發之前需要SetClientCertificate一個電話,根據鏈接。
這有幫助嗎?
我有同樣的情況(從Excel中的VBA發送一個http請求);我創建了三個對象:
Set HttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
- 爲HTTP請求類和
Set fsobj = CreateObject("Scripting.FileSystemObject")
Set txtobj = fso.OpenTextFile("C:\PKCERT.PEM")
- 進入一個變量的證書內容,將它傳遞給HttpReq.SetClientCertificate
,
certificate_data = txtobj.ReadAll
HttpReq.SetClientCertificate (certificate_content)
所以我可以像往常一樣發送請求包括其公鑰證書
HttpReq.Send
P.S.我在http://www.808.dk/?code-simplewinhttprequest找到了一個腳本 - 在我的情況下工作得很好,也希望在你的腳本中。
你可以發佈一些代碼嗎?另外,「WinHttp.WinHttpRequest.5.1」是一個COM組件嗎?在哪裏找到它? – shahkalpesh 2009-08-12 05:42:01