function GetAccessToken(const client_id, client_secret: string; HTTP: TNetHTTPClient;out access_token,expires_in,error:String):Boolean; var URL:String; cParam:TStringList; FJson:TJsonObject; S:string; begin URL:=‘https://aip.baidubce.com/oauth/2.0/token‘; cParam:=TStringList.Create; cParam.Add(‘grant_type=client_credentials‘); cParam.Add(‘client_id=‘+client_id); cParam.Add(‘client_secret=‘+client_secret); try s:=HTTP.Post(URL,cParam).ContentAsString; FJson:=TJSONObject.ParseJSONValue(s) as TJSONObject; error:=‘‘; if FJson.Values[‘error‘]<>nil then begin if FJson.Values[‘error_description‘].Value=‘unknown client id‘ then error:=‘API Key不正确‘; if FJson.Values[‘error_description‘].Value=‘Client authentication failed‘ then error:=‘Secret Key不正确‘; if error=‘‘ then error:=‘未知错误‘; FJson.Free; Exit(false); end; access_token:=FJson.Values[‘access_token‘].Value; expires_in:=FJson.Values[‘expires_in‘].Value; Result:=True; FJson.Free; finally cParam.Clear; cParam.Free; end; end;
Delphi 10.4 -- TNetHTTPClient使用示例
原文:https://www.cnblogs.com/tc310/p/14924074.html