加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何使用Delphi中的DropBox REST API复制文件

发布时间:2020-12-15 10:18:42 所属栏目:大数据 来源:网络整理
导读:我似乎没有管理使用dropbox api操作的文件复制。我可以成功授权我的客户端,下载和上传文件。复制操作需要使用POST方法,我认为这是我产生错误请求的地方。 我定义了OAuth认证的POST方法,并使用Indy TIdHTTP发布请求,但是我总是收到错误代码403 – 权限被
我似乎没有管理使用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一起使用时,params被复制在消息的正文中,而不是在url中
尝试使用类似的东西:
http:Post(URL+encodeparams(params));

我不知道这是正确的语法,但这是想法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读