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');