如何通过Delphi 7上传文件到dropbox?

2023-11-26

我尝试将文件上传到保管箱。
我使用 dropbox apihttps://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;

我收到“400 错误请求”。
所有令牌都是正确的(其他 api 运行良好)。
这个api如何传递参数?


试试这个:

procedure TDropbox.Upload(const AFileName: String);
const
  API_URL = 'https://api-content.dropbox.com/1/files_put/sandbox/';
var
  URL: String;
  https: TIdHTTP;
  SslIoHandler: TIdSSLIOHandlerSocket;
begin
  URL := API_URL+ExtractFileName(AFileName)
    + '?oauth_signature_method=PLAINTEXT&oauth_consumer_key=' + FAppKey
    + '&oauth_token=' + FOAuth.AccessToken
    + '&oauth_signature=' + FAppSecret + '%26' + FOAuth.AccessTokenSecret;

  https := TIdHTTP.Create(nil);
  try
    SslIoHandler := TIdSSLIOHandlerSocket.Create(https);
    SslIoHandler.SSLOptions.Method := sslvTLSv1;
    SslIoHandler.SSLOptions.Mode := sslmUnassigned;

    https.IOHandler := SslIoHandler;
    https.Post(URL, AFileName);
  finally
    FreeAndNil(https);
  end;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过Delphi 7上传文件到dropbox? 的相关文章

随机推荐

  • 资源不在java项目的构建路径上?

    我的 Eclipse 上有一个 Maven 项目 当我执行调用层次结构时 我收到消息 该资源不在 java 项目的构建路径上 为此需要配置什么 我按照以下步骤操作 它起作用了 属性 gt 项目方面 gt 检查java gt 确定 转换为ma
  • 在 O(n) 和常数空间中查找重复[重复]

    这个问题在这里已经有答案了 可能的重复 简单的面试问题变得更难 给定数字 1 100 找到缺失的数字 在线性时间和常量空间中查找数组中缺失和重复的元素 我在一个论坛上看到一个有趣的问题 你有从 1 到 100 的 100 个元素 但由于错误
  • 使用 tweepy 流式传输用户的时间线和过滤的推文

    几天前我开始探索 tweepy 并且能够实时流式传输经过过滤 带有关键字 的推文 现在我不仅想流式传输经过过滤的推文 还想流式传输来自多个特定 Twitter 用户的推文 使用 tweepy 可以吗 看来stream userstream
  • 所以在java中你不能有具有不同返回值和参数的重复方法名称?

    Java中是否可以有两个名称相同但参数和返回类型不同的方法 看起来这将是概括一个简单的 getter 和 setter 的好方法 您可以使用构造函数来做到这一点 为什么不使用常规方法呢 例如 为什么不能做 int getVal return
  • 将 Sencha Cmd 与动态加载的控制器结合使用

    我使用 Ext JS 4 创建了一个应用程序 controllers我的财产app js仅包含主控制器 Ext application name MyApp appFolder app controllers main App loadCo
  • 使用 Selenium WebDriver 和 python 按下 ENTER 键[重复]

    这个问题在这里已经有答案了 如何使用 selenium python 绑定模拟 ENTER 按键 我已经尝试过以下块 但它不起作用 driver find element by xpath html xxxxx send keys keys
  • 如何从 sklearn 反转标签编码器以获取多列?

    我想在多列上使用 LabelEncoder 的 inverse transform 函数 这是我在数据帧上应用 LabelEncoder 时用于多个列的代码 class MultiColumnLabelEncoder def init se
  • matplotlib 3d 表面上的连续阴影

    在 matplotlib 3D 图中 我可以设置行 列数来确定表面上可见的面总数 s ax plot surface x y z color gray shade True rstride 1 cstride 1 其中 rstride 和
  • 使用 ORDER BY 子句的替代结果

    CREATE TABLE TEST customername varchar 50 INSERT INTO TEST VALUES CUSTOMER 1 INSERT INTO TEST VALUES CUSTOMER 1 INSERT I
  • 如何在 jsoup 中获取元素的第一级子元素

    在jsoup中Element children 返回 Element 的所有子元素 后代 但是 我想要元素的第一级子级 直接子级 我可以使用哪种方法 Element children 仅返回直接子元素 既然你把他们绑在树上 他们也会有孩子
  • 如何创建接受不超过 10 位数字的正则表达式?

    如何创建接受不超过 10 位数字的正则表达式 thanks 既然你问了 如何 我将尝试逐步解释 因为您没有指定您正在使用哪种正则表达式风格 所以我将在PCRE and 两个 POSIX 正则表达式变体 For simple在这种情况下 您应
  • 使用 iPhone 音频适配器传输数据

    我刚刚开始在一家生物医学公司工作 我们需要将我们正在制造的设备中的数据传输到 iPhone 显然 使用 iPhone 程序就足够了 但对于原型设计和更简单的解决方案 我想知道我们是否可以使用现有的蓝牙音频发射器 例如 http www bu
  • python高效子字符串搜索[重复]

    这个问题在这里已经有答案了 可能的重复 string find 在 CPython 中是如何实现的 我在堆栈溢出中阅读了许多文章 比较了子字符串搜索的性能 例如Python字符串搜索效率 这是搜索子字符串最有效的方法吗 python 中的子
  • RecyclerView:如何创建插入动画效果?

    我有一个ReyclerView与一个LinearLayoutManager and an Adapter
  • 如何将MySQLi结果集加载到二维数组中?

    我的 mysqli 结果集有问题 我有一个包含一堆消息的表 表中的每一行代表一条消息 我有一些列 例如 ID 标题 正文和 公共 公共列包含布尔值 指定消息是向所有人显示还是仅向发布者显示 我有一个页面 我想在其中显示所有公共消息 如果您单
  • 无法将下载的文件存储在相关文件夹中

    我用 python 结合 selenium 编写了一个脚本 用于从网页下载一些文档文件 以 doc 结尾 我不想使用的原因requests or urllib下载文件的模块是因为我当前正在玩的网站没有任何真实的网址连接到每个文件 它们是 J
  • 大图像的语义分割

    我正在处理数量有限的大尺寸图像 每个图像都可以有3072 3072像素 为了使用 FCN 或 U net 训练语义分割模型 我构建了一个大样本的训练集 每个训练图像是128 128 在预测阶段 我所做的是将大图像切成小块 与训练集相同128
  • Spring:如何使用@Value注释注入内联字符串列表[重复]

    这个问题在这里已经有答案了 如何使用注入字符串值列表 Value注解 我正在使用 Spring 4 1 2 我试过了 Value value top person organizationalPerson user private List
  • 从另一个 Activity 导航回来时,Android Activity onCreate 被调用两次

    我有一个应用程序 可以在用户在 webview 活动上使用 OAuth 进行身份验证后生成音乐 看起来像这样 主要播放器活动 OAuth 活动 返回主要播放器活动 但是 当从 OAuth 活动中调用 onCreate 方法时 会调用两次 导
  • 如何通过Delphi 7上传文件到dropbox?

    我尝试将文件上传到保管箱 我使用 dropbox apihttps www dropbox com developers reference api files POST procedure TDropbox Upload2 const U