Ich versuche Indy zu verwenden, um ein RevContent-oAuth-Token gemäß this page abzurufen. Hier ist mein Code:Indy verwenden, um Revcontent-OAuth-Token abzurufen
procedure TForm2.Button1Click(Sender: TObject);
var
IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocketOpenSSL;
idhttp:tidhttp;
params: TStringList;
begin
idhttp:=tidhttp.create(self);
IdSSLIOHandlerSocket1 := TIdSSLIOHandlerSocketOpenSSL.create(nil);
with IdSSLIOHandlerSocket1 do begin
SSLOptions.Method := sslvSSLv23;
SSLOptions.SSLVersions := [sslvSSLv23];
end;
params := TStringList.create;
params.add('clientid=xxyyzz');
params.add('client_secret=xxyyzzxxyyzzxxyyzzxxyyzzxxyyzzxxyyzz');
params.add('grant_type=client_credentials');
with IdHTTP do begin
IOHandler := IdSSLIOHandlerSocket1;
Request.ContentType := 'application/x-www-form-urlencoded';
end;
showmessage(idhttp.Post('https://api.revcontent.io/oauth/token',params));
end;
Aber immer, wenn ich es laufen bekomme ich einen 400 Bad Request Fehler. Was mache ich falsch?
Verwenden Sie 'client_id', nicht' clientid'. Verwenden Sie nicht SSL3, diese Site unterstützt TLS1. Legen Sie ContentType nicht fest. Verwenden Sie try/except um 'Post', um die Ausnahme abzufangen und die volle Fehlermeldung' (E als EIdHTTPProtocolException) zu bekommen. ErrorMessage' – smooty86
yep .... Ich habe mich gerade selbst entdeckt, nachdem ich es durch Fiddler ausgeführt hatte, dass ich client_id nicht benutzte eine Antwort und ich werde dir Kredit geben. –