使用 Indy 检索 Revcontent OAuth 令牌
Using Indy to retrieve Revcontent OAuth Token
我正在尝试使用 Indy 根据 this page 检索 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 Bad Request 错误。我做错了什么?
使用 client_id
,而不是 clientid
。
不要使用 SSL3,该站点支持 TLS1。
不要设置 ContentType。
在 Post
周围使用 try/except 来捕获异常并获取完整的错误消息 (E as EIdHTTPProtocolException).ErrorMessage
我正在尝试使用 Indy 根据 this page 检索 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 Bad Request 错误。我做错了什么?
使用 client_id
,而不是 clientid
。
不要使用 SSL3,该站点支持 TLS1。
不要设置 ContentType。
在 Post
周围使用 try/except 来捕获异常并获取完整的错误消息 (E as EIdHTTPProtocolException).ErrorMessage