I am trying to upload a file to Dropbox.
I am using dropbox api https://www.dropbox.com/developers/reference/api#files-POST
procedure TDropbox.Upload2; const URL = 'https://api-content.dropbox.com/1/files/dropbox/'; var Response: String; Params: TIdMultipartFormDataStream; https: TIdHTTP; SslIoHandler: TIdSSLIOHandlerSocket; begin https := TIdHTTP.Create(nil); Params := TIdMultipartFormDataStream.Create(); try SslIoHandler := TIdSSLIOHandlerSocket.Create(https); SslIoHandler.SSLOptions.Method := sslvTLSv1; SslIoHandler.SSLOptions.Mode := sslmUnassigned; https.IOHandler := SslIoHandler; Params.AddFormField('oauth_signature_method', 'PLAINTEXT'); Params.AddFormField('oauth_consumer_key', FAppKey); Params.AddFormField('oauth_token', FOAuth.AccessToken); Params.AddFormField('oauth_signature', FAppSecret + '&' + FOAuth.AccessTokenSecret); Params.AddFile('file', 'C:\test.txt', 'application/octet-stream'); https.Post(URL + 'test.txt', Params); finally FreeAndNil(https); FreeAndNil(Params); end; end;
I have a "400 Bad request".
All tokens are correct (other api work well). How to pass parameters for this api?
source share