![]() |
Zugriff auf Shopware REST API mit idHTTP
Hallo,
ich würde gerne die REST API von Shopware ( ![]()
Code:
Leider bekomm ich da immer den Response: {"success":false,"message":"Invalid or missing auth"}
var MemoryStream: TMemoryStream;
begin MemoryStream := TMemoryStream.Create; try IdHTTP1.Request.URL := 'http://localhost/api'; IdHTTP1.Request.BasicAuthentication := true; IdHTTP1.Request.Username := 'meinApiUser'; IdHTTP1.Request.Password := 'meinApiKey'; IdHTTP1.get(IdHTTP1.Request.URL, MemoryStream); MemoryStream.Position:=0; Memo1.Lines.LoadFromStream(MemoryStream); finally MemoryStream.Free; end; Wie muss ich den Request aufbauen, dass eine erfolgreiche Anmeldung funktioniert? Danke. mfg christoph |
AW: Zugriff auf Shopware REST API mit idHTTP
Klappt es denn mit dem Browser (IE, Firefox)? Bei GET und Basic Auth kann man damit den Zugriff testen. Einfach die URL eingeben und dann User/Pass im Dialog eingeben.
Das wird auch in der Doku beschrieben: Zitat:
![]() |
AW: Zugriff auf Shopware REST API mit idHTTP
Hallo mjustin,
ja im Browser funktioniert es. Sowohl mit dem Anmelde-Dialog als auch mit ![]() |
AW: Zugriff auf Shopware REST API mit idHTTP
Ist es die aktuelle Indy Version (10.5.9)?
|
AW: Zugriff auf Shopware REST API mit idHTTP
nein, es ist die Version 10.5.7.
Ich hol mir die aktuellste Version und probier es nochmals |
AW: Zugriff auf Shopware REST API mit idHTTP
Das Beispiel
![]() verwendet nicht Basic sondern Digest Authentifizierung. Indy unterstützt Digest, aber dazu muss die Digest-Unit IdAuthenticationDigest eingebunden sein. BasicAuthentication := true; muss weggelassen werden. Genaueres kann man mit Fiddler als HTTP Proxy herausfinden, aber ich tippe es lag daran. Weitere Tipps zum Debuggen sind hier: ![]() |
AW: Zugriff auf Shopware REST API mit idHTTP
Mit Digest Authetifizierung bekomm ich: HTTP/1.1 400 Bad Request
Code:
var MemoryStream: TMemoryStream;
begin MemoryStream := TMemoryStream.Create; try IdHTTP1.Request.URL := 'http://localhost/api'; IdHTTP1.Request.Authentication := TIdDigestAuthentication.Create; IdHTTP1.Request.Authentication.Username := 'meinApiUser'; IdHTTP1.Request.Authentication.Password := 'meinApiKey'; IdHTTP1.get(IdHTTP1.Request.URL, MemoryStream); MemoryStream.Position := 0; Memo1.Lines.LoadFromStream(MemoryStream); finally MemoryStream.Free; end; |
AW: Zugriff auf Shopware REST API mit idHTTP
Zitat:
Falls das nicht geht (wenn Shopware nicht auf einem eigenen Server installiert ist) ann man sich mit Fiddler die Methode ansehen. Bei Digest wird der Server mit einem HTTP Header WWW-Authenticate: Digest realm="testrealm@host.com",... antworten und bei Basic halt mit WWW-Authenticate: Basic ... Die TIdDigestAuthentication.Create; Zuweisung macht Indy selber, der minimale Code wäre (ungetestet):
Code:
IdHTTP1.Request.Authentication.Username := 'meinApiUser';
IdHTTP1.Request.Authentication.Password := 'meinApiKey'; Memo1.Lines.Text := IdHTTP1.get('http://localhost/api'); |
AW: Zugriff auf Shopware REST API mit idHTTP
Digest Auth hab ich mal ausgelesen, verbinden kann ich aber immer noch nicht:
Code:
Digest username="meinApiUser",
realm="Shopware4 REST-API", nonce="dc0e78ffcbef3a87b5e5bfd2719f38e6", algorithm="MD5", uri="/api/", qop="auth", nc=00000001, cnonce="a387e108184985c695c70eb999bd4f9c", response="4ba62efad9e4c33276e342b58128ddea", opaque="d75db7b160fe72d1346d2bd1f67bfd10" |
AW: Zugriff auf Shopware REST API mit idHTTP
Versuch es mal mit
Delphi-Quellcode:
IdHTTP1.Request.BasicAuthentication := False;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz