Ich weiß, dass dies ähnlich wie einige zuvor gestellte Fragen ist, aber etwas funktioniert immer noch nicht für mich. Wie kann der folgende Befehl:CURL Äquivalent zu POST JSON-Daten mit VBA
curl -X POST --data @statements.json -H "Content-Type: application/json" --user username:password -H "x-experience-api-version: 1.0.0" https://MYLRS.waxlrs.com/TCAPI/statements
in VBA repliziert werden?
Zusätzliche Informationen:
Dies entspricht einem Hosted TIN bezieht CAN (XAPI) Lern Record Store WaxLRS genannt (von saltbox). Das obige Beispiel stammt von hier: http://support.saltbox.com/support/solutions/articles/1000083945-quick
Ich habe ein Konto (kostenlos tinkerers Konto, keine CC-Setup erforderlich) und generiert habe, was ich glaube, dass die erforderlichen Benutzername & Passwort Kombination. Die Anmeldeinformationen werden als "Kennung" & "Kennwort" bezeichnet und erscheinen unter der folgenden Überschrift: Grundlegende Authentifizierungsinformationen.
Egal was ich tue, erhalte ich eine Fehlermeldung:
<html>
<head><title>Unauthorized</title></head>
<body>
<h1>Unauthorized</h1>
<p>This server could not verify that you are authorized to
access the document you requested. Either you supplied the
wrong credentials (e.g., bad password), or your browser
does not understand how to supply the credentials required.
<br/>
<!-- --></p>
<hr noshade>
<div align="right">WSGI Server</div>
</body>
</html>
Ich glaube, dass das Beispiel die JSON Nutzlast erwartet aus einer Datei zu erhalten, aber ich es in einen String bin Laden. Ich erwarte nicht, dass dies zu dem Problem beiträgt, ich habe meine Zeichenfolge mit dem Beispiel verglichen, das mit NP ++ Compare bereitgestellt wurde, und es stimmt überein.
Mein Code so weit ist:
url = "https://xxxxxxx.waxlrs.com/TCAPI/statements"
Set pXmlHttp = CreateObject("WinHttp.WinHttpRequest.5.1") 'MSXML2.XMLHTTP")
pXmlHttp.Open "POST", url, False
pXmlHttp.setRequestHeader "Content-Type", "application/json"
'pXmlHttp.setRequestHeader "Authorization", "Basic xxxxxxt8wfB6JYerYCz:xxxxxx1FOd29J1s6G2"
pXmlHttp.SetCredentials "xxxxxxt8wfB6JYerYCz", "xxxxxx1FOd29J1s6G2", 0
pXmlHttp.setRequestHeader "x-experience-api-version", "1.0.0"
pXmlHttp.send (stringJSON)
Set pHtmlObj = CreateObject("htmlfile")
pHtmlObj.body.innerHTML = pXmlHttp.responseText
apiWaxLRS = pXmlHttp.responseText
Fragen/Antworten, die dazu beigetragen:
- Send a JSON string to a RESTful WS from Classic ASP
- https://stackoverflow.com/a/17063741/3451115
- How to POST JSON Data via HTTP API using VBScript?
Aber bin ich ratlos nach wie vor, wie die CURL-Anweisung in VBA zu replizieren
prüfen Grund Genehmigung in [dieser Antwort] (http://stackoverflow.com/a/39862888/2165759). – omegastripes
http://stackoverflow.com/questions/17063550/equivalent-curl-in-vba?noredirect=1&lq=1 –
'SetCredentials' erwartet die reinen Text Benutzer und PW Werte, es wird Base64 Kodierung behandeln. – Bob77