Einzelnen Beitrag anzeigen

Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#18

AW: Zugriff auf Shopware REST API mit idHTTP

  Alt 30. Mär 2013, 22:46
Die kompletten HTTP vom Server wären interessant.

Mit IdHTTP2.Request.URL als URL zu arbeiten ist auch nicht ganz sinnvoll, während der Authentisierung wird dieser Wert überschrieben IdHTTP.DoRequest():
Delphi-Quellcode:
        wnAuthRequest:
          begin
            Request.URL := AURL;
          end;
Vielleicht hilft es schon IdHTTP2.Request.Connection := 'Keep-Alive'; zu setzten.

Also du könntest es mal versuchen zwischen den beiden Requests IdHTTP2.Request.Authentication.Next aufrufen.

Innerhalb der unit IdAuthenticationDigest gibt es die Authentication Funktion. Die ist ganz interessant.

Intern wird über ein Zähler FCurrentStep der aktuelle Schritt gesetzt. Wenn du also deinen ersten Request absetzt, dann wird von der TIdHTTP Komponente über die TIdDigestAuthentication Komponente mittels der Funktion Authentication der Authentication Header erzeugt und FCurrentStep auf 0 gesetzt.

Beim nächsten Request ist dann FCurrentStep noch bei 0 und es wird als Authentication Header nur "Digest" zurückgegeben.

Am besten du gehst mit dem Debugger mal ganz langsam durch den Code.

EDIT:
Der nächste Request muss so aussehen, dass du [...] nc=00000002 [...] überträgst: http://en.wikipedia.org/wiki/Digest_...th_explanation ::
Zitat:
For subsequent requests, the hexadecimal request counter (nc) must be greater than the last value it used
Sebastian

Geändert von geskill (30. Mär 2013 um 22:48 Uhr)
  Mit Zitat antworten Zitat