Einzelnen Beitrag anzeigen

HJay

Registriert seit: 7. Dez 2009
172 Beiträge
 
Delphi XE7 Enterprise
 
#1

OAuth with IdHTTP vs. Synapse

  Alt 18. Dez 2012, 03:11
Ich versuche gerade, eine Beispielroutine für OAuth-Authentifizierung von der Bibliothek "Synapse" nach "Indy" zu konvertieren.

Code:
procedure TForm1.AuthorizeButtonClick(Sender: TObject); // original by Lukas Gebauer, Ararat Synapse project
var
  http: thttpsend;
  response: string;
  A: TStringStream;
begin
    http := THttpsend.Create;
    http.Protocol := '1.1';
    http.UserAgent := 'DotNetOpenAuth/3.4.6.10357';
    http.Document.position := 0;
    writestrtostream(http.Document, OAuthString);
    http.Document.position := 0;
    http.MimeType := 'application/x-www-form-urlencoded; charset=utf-8';
    http.HTTPMethod('POST', oAuthURL);
    http.Document.position := 0;
    response := readstrfromstream(http.Document, http.Document.Size);
    memo1.Lines.Add(response);
end;
Code:
procedure TForm1.ButtonAuthStringListClick(Sender: TObject);
  var
    AHTTP      : TIdHTTP;
    ARequest   : TStringList;
    AResponse  : String;
begin
  AHTTP := TIdHTTP.Create;

  ARequest := TStringList.Create;
  ARequest.Add(OAuthString);

  AResponse := AHTTP.Post(OAuthURL, ARequest);
  Memo1.Lines.Add(AResponse);

  ARequest.Free;
  AHTTP.Free;
end;
Während die Synpase-Version mit dem gleichen OAuthString tadellos funktioniert, gibt die Indy-Version leider eine OAuth-Fehlermeldung zurück: "oauth_error_message=Error while reading message DotNetOpenAuth.OAuth.Messages.UnauthorizedTokenReq uest..."

Kennt jemand zufällig sowohl Synapse als auch Indy und kann sagen, woran das liegen kann?
  Mit Zitat antworten Zitat