Mit Visual Basic auf Shopware 5 API zugreifen
Hallo!
ich schreibe gerade mit Visual Basic an einer API für einen Online-Shop von Shopware 5.
Ich kann Bestellungen erfolgreich abrufen, nun möchte ich gerne den trackingCodeper per "PUT" aktualisieren.
Wenn ich den Code wie unten angegeben ausführe bekomme ich nur als Antwort "{"success":true,"data":{"id":4346,"location":"https:\/\/www.DOMÄNE.de\/api\/orders\/4346"}}".
Leider werden die Daten nicht aktualisiert. Was mache ich hier falsch?
ich schreibe gerade mit Visual Basic an einer API für einen Online-Shop von Shopware 5.
Ich kann Bestellungen erfolgreich abrufen, nun möchte ich gerne den trackingCodeper per "PUT" aktualisieren.
Wenn ich den Code wie unten angegeben ausführe bekomme ich nur als Antwort "{"success":true,"data":{"id":4346,"location":"https:\/\/www.DOMÄNE.de\/api\/orders\/4346"}}".
Leider werden die Daten nicht aktualisiert. Was mache ich hier falsch?
Dim objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
Try
objHTTP.Open("PUT", URL & "orders/4346", False, Benutzer, Token) 'Zugangsdaten sind in einer globalen Variabel
objHTTP.send("{""id"":4346,""trackingCode"":""000000000000""}")
Dim test As String = objHTTP.ResponseText
Catch ex As Exception
LOG("Fehler: " & ex.Message)
End Try
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 317598
Url: https://administrator.de/contentid/317598
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
9 Kommentare
Neuester Kommentar
Ich kenne die Shop API jetzt nicht, aber warum nutzt du keinen WebRequest für sowas sondern ein unmanaged COM-Object in VB.Net??
R.
R.
Kennst du ein Try ... Catch in VBA??! Ich nicht.
Kategorie: VisualStudio?!
Kategorie: VisualStudio?!
Zitat von @SmogKiel:
OK, da ich kein gelernter Programmierer bin, sonder eher mein Wissen aus Projekten erlerne, würde ich gerne den Unterschied wissen.
.NET Managed Code = Objekt-Management und Speicherverwaltung wird vom NET-Framework übernommen.OK, da ich kein gelernter Programmierer bin, sonder eher mein Wissen aus Projekten erlerne, würde ich gerne den Unterschied wissen.
Unmanaged Code is anfälliger und Bedarf expliziter Speicherfreigaben.
Deswegen sollte man wann immer möglich auch die NET-Objekte verwenden wenn diese die gewünschte Funktionaität bereitstellen.
Das was du da machst macht man in VBA, weils da keine andere Möglichkeit in dieser Hinsicht gibt.
Eigentlich dachte ich, dass ich mit WebRequest arbeite
Nicht mit dem .NET Objekt des WebRequests (siehe Link oben) sondern mit einem COM-Objekt das ähnliche Funktionen bereitstellt, denn ich sende etwas hin und bekomme die Antwort (objHTTP.ResponseText )...oder verstehe ich das falsch?
So einfach ist das nicht.Geht es denn einfacher?
Siehe Link von mir oben!Du solltest dich eher mit der API des Shops detaillierter auseinandersetzen, dort wird stehen wie bestimmte Requests auszusehen haben. Ein Shop-System wird IMHO nie ohne vorherige Authentifizierung Änderungen am System per PUT akzeptieren!
Auszug aus RFC 1945: D.1.1 PUT
The PUT method requests that the enclosed entity be stored under the
supplied Request-URI. If the Request-URI refers to an already
existing resource, the enclosed entity should be considered as a
modified version of the one residing on the origin server. If the
Request-URI does not point to an existing resource, and that URI is
capable of being defined as a new resource by the requesting user
agent, the origin server can create the resource with that URI.
The fundamental difference between the POST and PUT requests is
reflected in the different meaning of the Request-URI. The URI in a
POST request identifies the resource that will handle the enclosed
entity as data to be processed. That resource may be a data-accepting
process, a gateway to some other protocol, or a separate entity that
accepts annotations. In contrast, the URI in a PUT request identifies
the entity enclosed with the request -- the user agent knows what URI
is intended and the server should not apply the request to some other
resource.
Teste mal POST
The PUT method requests that the enclosed entity be stored under the
supplied Request-URI. If the Request-URI refers to an already
existing resource, the enclosed entity should be considered as a
modified version of the one residing on the origin server. If the
Request-URI does not point to an existing resource, and that URI is
capable of being defined as a new resource by the requesting user
agent, the origin server can create the resource with that URI.
The fundamental difference between the POST and PUT requests is
reflected in the different meaning of the Request-URI. The URI in a
POST request identifies the resource that will handle the enclosed
entity as data to be processed. That resource may be a data-accepting
process, a gateway to some other protocol, or a separate entity that
accepts annotations. In contrast, the URI in a PUT request identifies
the entity enclosed with the request -- the user agent knows what URI
is intended and the server should not apply the request to some other
resource.
Teste mal POST