Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Zugriff auf Shopware REST API mit idHTTP

  Alt 20. Nov 2012, 17:03
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;
Ob Digest als Authentifizierungsmethode eingestellt ist, müsste man in der Konfiguration nachsehen.

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');
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat