Http-Request (POST) für GraphQL API-Abfrage
20.04.2024 14:03:38
Marc
ich versuche mich seit Stunden daran einen HTTP-Request zu erstellen via VBA mit dem ich Daten von der freien API (GraphQL) der Deutschen Börse ziehen kann. Ich hab schon so ziemlich jede erdenkliche Variante probiert in bezug auf die Gestaltung des Request-Headers aber das Ergebnis ist immer das Gleiche.
Mein Code liefert zwar keine Fehlermeldung und ich bekomme eine Antwort vom Server aber ich bekomme trotzdem keine Daten. Dass die Daten verfügbar sind und geliefert werden habe ich bereits mit einem Python-Code getestet. Ich vermute, dass irgendetwas falsch ist an der Art, wie ich den Http-Header aufbaue bei meinem POST-Request. Ich bin noch nicht so fit mit HTTP-Requests und ich vermute, dass der Fehler trivial ist, aber ich komme nicht drauf woran es liegt.
Das ist mein Code:
Sub httppost()
Dim xmlhttp As Object, myurl As String, body As String, auth As String
Set xmlhttp = CreateObject("MSXML2.serverXMLHTTP")
myurl = "https://console.developer.deutsche-boerse.com/apis/accesstot7-referencedata/1.1.0/"
auth = "{ " & """X-DBP-APIKEY""" & " : " & """68cdafd2-c5c1-49be-8558-37244ab4f513""" & " }"
contype = """{ application/json }"""
xmlhttp.Open "POST", myurl, False
xmlhttp.setRequestHeader "Content-Type", contype
xmlhttp.setRequestHeader "Authorization", "Basic " + auth
body = """query {" & vbCrLf & _
"ProductInfos{" & vbCrLf & _
"data {" & vbCrLf & _
"ProductType" & vbCrLf & _
"}}}"""
xmlhttp.Send body
ThisWorkbook.Worksheets("Tabelle1").Range("A1").Value = xmlhttp.getAllResponseHeaders()
End Sub
Hier ist mal eine Beispielabfrage in Python, die das gewünschte Ergebnis problemlos liefert:
https://github.com/Finsinyur/EurexT7ReferenceData/blob/main/get_producttypes_eurex.py
Und hier der Link zur Dokumentation der Deutschen Börse:
https://console.developer.deutsche-boerse.com/apis/a518bf48-661d-468d-af6a-c107d0fc1511/api-details
Es wäre mega wenn jemand einen Tipp für mich hätte was an meinem HTTP-Header falsch ist.
Beste Grüße
Marc
Anzeige