我需要以编程方式请求一些文件并发送文件作为响应。我如何通过API从 Delphi 创建一个文件请求(https://www.dropbox.com/requests),以便第三方可以用这种代码将请求的文件发送给我;
procedure TDropbox.Upload(const AFileName: String);
const
API_URL = 'https://api-content.dropbox.com/1/files_put/sandbox/';
var
URL: String;
Stream: TMemoryStream;
ShortFileName: String;
https: TIdHTTP;
SslIoHandler: TIdSSLIOHandlerSocket;
begin
if not FileExists(AFileName) then
begin
raise EInOutError.CreateFmt('File %s not found', [AFileName]);
end;
ShortFileName := ExtractFileName(AFileName);
URL := API_URL+ShortFileName
+ '?oauth_signature_method=PLAINTEXT&oauth_consumer_key=' + FAppKey
+ '&oauth_token=' + FOAuth.AccessToken
+ '&oauth_signature=' + FAppSecret + '%26' + FOAuth.AccessTokenSecret;
https := TIdHTTP.Create(nil);
Stream := TMemoryStream.Create;
try
SslIoHandler := TIdSSLIOHandlerSocket.Create(https);
SslIoHandler.SSLOptions.Method := sslvTLSv1;
SslIoHandler.SSLOptions.Mode := sslmUnassigned;
https.IOHandler := SslIoHandler;
Stream.LoadFromFile(AFileName);
https.Post(URL, Stream);
finally
FreeAndNil(Stream);
FreeAndNil(https);
end;
end;
1条答案
按热度按时间qrjkbowd1#
您帖子中的代码引用了一个API端点,用于使用已停用的Dropbox API v1上传文件。
如果您希望以编程方式创建文件请求,则应使用当前Dropbox API v2上的/2/file_requests/create端点。您可以在此处找到相关文档:
https://www.dropbox.com/developers/documentation/http/documentation#file_requests-create
请注意,Dropbox API不提供以编程方式将文件上传到文件请求的功能。您可以如上所述以编程方式创建文件请求,但上传到文件请求将是一个手动过程。