2009-08-12 140 views
8

"WinHttp.WinHttpRequest.5.1"を使用して、ExcelのVBAからHTTP POST要求を送信します。 しかし、私はSSL証明書のエラーを受け取ったので、HTTPSのためにそれをすることができませんでした。Excel用VBAを使用したHTTPS POST要求

ExcelのVBAからWebサイトへのSSL接続をネゴシエートするのにどのVBAコードを使用しますか?

+1

コードを投稿してください。また、 "WinHttp.WinHttpRequest.5.1"はCOMコンポーネントですか?それを見つけるためにどこですか? – shahkalpesh

答えて

8

WinHttpRequest目的は、SetClientCertificate方法を有しています。 (私はVBAのためにそれを適応させることを試みた)MSDNから取られたこのコード例を試してみてください。私は、COMコンポーネント(WinHttpRequest)を使用していないものの

' 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() 
2

、あなたが前に送信呼び出しとSetClientCertificateへの呼び出しを必要とするようで、リンクごとに。

これは役に立ちますか?

2

私は同じ状況です(ExcelのVBAからhttpリクエストを送信します)。

certificate_data = txtobj.ReadAll 
HttpReq.SetClientCertificate (certificate_content) 

HttpReq.SetClientCertificateにそれを渡すために、変数に証明書の内容を取得する - HTTPリクエストクラスの、そして

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

-

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

:私は3つのオブジェクトを作成しました

公開鍵証明書を含むリクエストは、通常どおり、

HttpReq.Send 

P.S.私はhttp://www.808.dk/?code-simplewinhttprequestにスクリプトを見つけました。私の場合はうまくいきました。

関連する問題