10
votes

Demande postale HTTPS utilisant VBA pour Excel

J'utilise "winhttp.winhttpequest.5.1" pour envoyer des demandes de post HTTP de VBA à Excel. Mais je ne pouvais pas réussir à le faire pour HTTPS, car j'ai reçu une erreur de certificat SSL.

Quel code VBA utiliseriez-vous pour négocier une connexion SSL sur un site Web de VBA à Excel?


1 commentaires

Pourriez-vous publier un code s'il vous plaît? En outre, "WinHTTP.WINHTTTPQUEST.5.1" Un composant COM? Où le trouver?


3 Réponses :


9
votes

L'objet winhttprecest em> a une méthode em> setClientCertificate em>. Essayez cet exemple de code pris depuis le MSDN (i essayé de l'adapter pour 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()


0 commentaires

2
votes

Bien que je n'ai pas utilisé le composant COM (WinHTTPRequest), il semble que vous ayez besoin d'un appel à SetClientCertificate avant d'appeler Envoyer, selon le lien.

Est-ce que cela aide?


0 commentaires

2
votes

J'ai la même situation (envoyez une demande HTTP d'un VBA dans Excel); J'ai créé trois objets: xxx

- pour la classe de demande HTTP et xxx

- pour entrer dans une variable du contenu du certificat , pour le transmettre à httpreq.seclientcertificate , xxx

afin que je puisse envoyer la demande, y compris son certificat de clé publique, comme d'habitude, xxx

ps J'ai trouvé un script à http://www.808.dk/?code-simplewinhttprequest - Cela a bien fonctionné dans mon cas, j'espère aussi dans la tienne.


0 commentaires