gpt4 book ai didi

delphi - 如何在 Delphi 中使用 DropBox REST API 复制文件

转载 作者:行者123 更新时间:2023-12-03 14:34:14 25 4
gpt4 key购买 nike

我似乎无法使用 dropbox api 管理文件复制操作。我可以成功授权我的客户端,下载和上传文件。复制操作需要使用 POST 方法,我认为这是我产生错误请求的地方。我正在为 OAuth 身份验证定义 POST 方法并使用 Indy TIdHTTP 来发布请求,但我总是收到错误代码 403 - 权限被拒绝。

这里是 dropbox api 描述:https://www.dropbox.com/developers/reference/api#fileops-copy

这是我的代码的一部分:

 ParamStr := Format('root=%s&from_path=%s&to_path=%s', [Root, EncodeFileName(FromPath), EncodeFileName(ToPath)]);
URL := 'https://api.dropbox.com/1/fileops/copy' + '?' + ParamStr;

Consumer := TOAuthConsumer.Create(Key, Secret);
AToken := TOAuthToken.Create(fToken, fTokenSecret);
HMAC := TOAuthSignatureMethod_HMAC_SHA1.Create;
ARequest := TOAuthRequest.Create('');
try
ARequest.HTTPURL := URL;
ARequest.Method := 'POST';
ARequest := ARequest.FromConsumerAndToken(Consumer, AToken, '');
ARequest.Sign_Request(HMAC, Consumer, AToken);


Params := TStringList.Create;
try
Params.Text := ParamStr + '&' + ARequest.GetString;
HTTP.Post(URL, Params);
finally
Params.Free;
end;

最佳答案

据我所知,与 indy 一起使用时,参数会复制到消息正文中,而不是复制到 url 中尝试使用类似的东西:

http:Post(URL+encodeparams(params));

我不确定这是否是正确的语法,但这就是想法。

关于delphi - 如何在 Delphi 中使用 DropBox REST API 复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10819948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com