J'ai essayé de suivre cet exemple: http://libkod.info/officexml-CHP-9-SECT-5.shtml - Archive.org - Donate
mais il a donné cette erreur
sur cette ligne:
Dim objHTTP As New MSXML2.XMLHTTP
J'ai essayé d'utiliser cet exemple: Comment puis-je envoyer une demande HTTP POST à un serveur à partir d'Excel à l'aide de VBA?
mais il a donné cette erreur:
sur cette ligne:
Print objHTTP.Status
Alors, comment puis-je passer un appel POST REST dans VBA? Comment puis-je effectuer un appel PUT de téléchargement de fichier en plusieurs parties/données de formulaire REST dans VBA?
Sub SendEmail()
'Dim objHTTP As New MSXML2.XMLHTTP
'Set objhttp = CreateObject("WinHttp.WinHttpRequest.5.1")
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://localhost:8888/rest/mail/send"
objHTTP.Open "POST", URL, False
objHTTP.send ("{""key"":null,""from"":""[email protected]"",""to"":null,""cc"":null,""bcc"":null,""date"":null,""subject"":""My Subject"",""body"":null,""attachments"":null}")
Print objHTTP.Status
Print objHTTP.ResponseText
End Sub
Objet WinHttpRequest: http://msdn.Microsoft.com/en-us/library/windows/desktop/aa384106(v=vs.85).aspx
Vous n'avez probablement pas ajouté de référence à Microsoft XML
(aucune version) pour Dim objHTTP As New MSXML2.XMLHTTP
dans la boîte de dialogue Outils/Références ... de la fenêtre VBA.
En outre, il est judicieux d’éviter d’utiliser une liaison tardive (CreateObject
...); Il vaut mieux utiliser la liaison anticipée (Dim objHTTP As New MSXML2.XMLHTTP
), car elle vous permet d’utiliser Intellisense pour répertorier les membres et effectuer toutes sortes de validations au moment de la conception.
Je devais utiliser Debug.print
au lieu de Print
, qui fonctionne dans la fenêtre Immediate.
Sub SendEmail()
'Dim objHTTP As New MSXML2.XMLHTTP
'Set objHTTP = New MSXML2.XMLHTTP60
'Dim objHTTP As New MSXML2.XMLHTTP60
Dim objHTTP As New WinHttp.WinHttpRequest
'Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
'Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://localhost:8888/rest/mail/send"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "Content-Type", "application/json"
objHTTP.send ("{""key"":null,""from"":""[email protected]"",""to"":null,""cc"":null,""bcc"":null,""date"":null,""subject"":""My Subject"",""body"":null,""attachments"":null}")
Debug.Print objHTTP.Status
Debug.Print objHTTP.ResponseText
End Sub
Découvrez celui-ci:
https://github.com/VBA-tools/VBA-Web
C'est une bibliothèque de haut niveau pour traiter avec REST. C'est la POO, fonctionne avec JSON, mais aussi avec tout autre format.
Pour lire les données REST, au moins OData Considérons Microsoft Power Query. Vous ne pourrez pas écrire de données. Cependant, vous pouvez très bien lire les données.