0
Indyを使用してthis pageに従ってRevContent oAuthトークンを取得しようとしています。ここに私のコードはあります:Indyを使用してRevcontent OAuthトークンを取得する
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;
私はそれを実行するたびに、私は400の間違ったリクエストエラーが発生します。私は間違って何をしていますか?
「clientid」ではなく「client_id」を使用します。 SSL3を使用しないでください。そのサイトはTLS1をサポートしています。 ContentTypeを設定しないでください。 'Post'の周りにtry/exceptを使用して例外を捕捉し、完全なエラーメッセージ' E(EIdHTTPProtocolException).ErrorMessage'を取得してください。 – smooty86
うーん....私はclient_idを使用していなかったとFiddlerを使って実行した。答えと私はあなたに信用を与えるでしょう。 –