dropbox(文件放置)api 使用什么内容类型?以及如何模仿它?

2024-02-21

我正在读文件放置 https://www.dropbox.com/developers/core/docs#files_putDropbox API 的文档。

他们使用的 URL 路径是:https://api-content.dropbox.com/1/files_put/<root>/<path>?param=val请求正文保存文件:

required 需要上传的文件内容。由于整个 PUT 主体 将被视为文件,任何参数都必须作为文件的一部分传递 请求网址。请求 URL 应按照您的方式进行签名 签署任何其他 OAuth 请求 URL。

问题

  • 我很想知道这种类型的请求的内容类型是什么? (请求体中的文件和url字符串中的参数)

  • 如何模仿这个 API 功能?特别是在 Grails 控制器中。像这样的东西。

  • 如何测试这种类型的请求cURL Update:我找到了如何用curl来测试这个here https://github.com/andreafabrizi/Dropbox-Uploader/blob/master/dropbox_uploader.sh#L218.

对于控制器我设想的是这样的

  def save () {
    withFormt {
      html {actForHTML}
      <something> {actForREST}
    }
  }

  def actForREST () {
     //how can I get access to the file? I guess url parameters can be accessed by `params`
  }

REST 控制台无法在请求正文中发送二进制数据。不幸的是,我无法访问curl现在。但我没有什么可以给你的,我也将在我的个人机器上尝试同样的事情。

  • 如何使用curl进行文件上传? (@source - cURL 文档)

    4.3 文件上传POST

    早在 1995 年末,他们就定义了另一种通过 HTTP 发布数据的方法。它 RFC 1867 中有记录,为什么此方法有时被称为 RFC1867-发布。

    该方法主要是为了更好的支持文件上传。一种形式 允许用户上传文件,在 HTML 中可以这样写:

    <form method="POST" enctype='multipart/form-data' action="upload.cgi">
      <input type=file name=upload>
      <input type=submit name=press value="OK">
    </form>
    

    这清楚地表明即将发送的Content-Type是 多部分/表单数据。

    要使用curl发布到这样的表单,您可以输入如下命令行:

        curl --form upload=@localfilename --form press=OK [URL]
    
  • W3C 规范

    查看 W3C 规范here http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4RFC1867 http://www.faqs.org/rfcs/rfc1867.html对于多部分/表单数据

  • Grails 控制器处理请求

    您的应用程序应该能够处理multipart/form-data(我认为不需要添加 MIME 类型)。您在控制器中的操作应如下所示:-

例如:

def uploadFileAndGetParams(){
    def inputStream = request.getInputStream()
    byte[] buf = new byte[request.getHeaders().CONTENT_LENGTH] //Assuming
    //Read the input stream
    for (int chunk = inputStream.read(buf); chunk != -1; chunk = is.read(buf)){
        //Write it any output stream
        //Can refer the content-type of the file (following W3C spec)
        //and create an Output stream accordingly
    }

    //Get the params as well
    //params.foo //params.bar 
}

它可能不是完整的证据,但它应该没有我想象的那么复杂。今天我也想尝试一下。有用的帖子 https://stackoverflow.com/questions/5180375/sending-and-receiving-binary-data-in-servlets看看。

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

dropbox(文件放置)api 使用什么内容类型?以及如何模仿它? 的相关文章

  • cucumber.json 报告被重新运行场景报告覆盖

    我有一个具有相同技术堆栈 JAVA1 8 Cucumber JVM JUnit Maven 的 UI 测试项目和一个 API 测试项目 这两个项目都向我展示了这个问题 可能是因为两者都存在相同的依赖关系集 我使用了使用 maven sure
  • 从 Grails 控制器渲染视频内容

    毫无疑问又是一个愚蠢的新手问题 我在 Grails 控制器中有一个字节数组 其中包含视频文件 确切地说是 mp4 文件 的内容 我熟悉如何从 grails 控制器渲染 JSON XML 和其他基本类型 但我找不到任何显示如何输出视频的示例
  • 如何获取JavaFX的版本号?

    如何在运行时找出我正在使用哪个版本的 JavaFX 简单的方法之一就是简单地阅读javafx properties文件位于您的 JAVA HOME jre lib目录 我现在安装了 Java 1 7 u9 与之捆绑的 JavaFX 是 v2
  • GlassFish Server 开源版 3.0.1 中缺少“Web 服务”节点

    我在 glassfish 的管理控制台中看不到 Web 服务 节点 GF 管理控制台左侧的树状菜单中的菜单项 有没有办法在 glassfish 中启用它 我应该下载 glassfish 的任何升级才能启用它吗 简短的回答 不 不 更长的答案
  • 对 Java Servlet 进行单元测试

    我想知道对 servlet 进行单元测试的最佳方法是什么 只要内部方法不引用 servlet 上下文 测试内部方法就不是问题 但是测试 doGet doPost 方法以及引用上下文或使用会话参数的内部方法呢 有没有办法简单地使用经典工具 例
  • 在 PHP 中使用 file_get_contents 进行 PUT 请求的错误请求

    这个 api 调用使用 Postman REST 客户端 可以正常工作 但是当我的 GAE 应用程序中的服务器上发出请求时 我当前收到以下错误 HTTP 请求失败 在 C Projects app file php 第 26 行 打开流失败
  • 结果显示图像上有衬里

    我正在使用 opencv 和 android ndk 下面是我的 jni 代码 void Vignete Mat img1 Mat img2 Mat out resize img1 img1 img2 size img1 convertTo
  • 错误:libXext.so.6:无法打开共享对象文件:没有这样的文件或目录[重复]

    这个问题在这里已经有答案了 运行尝试打开 ods 文件的 java 文件时出现以下错误 线程 main 中出现异常 java lang UnsatisfiedLinkError opt software jdk1 6 0 45 jre li
  • 如何在 Jersey RESTful Web 服务中放置 cookie?

    我想通过 Jersey API 将 cookie 从 PUT webservice result 放置到 POST webservice 这是我的代码 WebResource service1 client resource http te
  • 有没有办法使用 SauceLabs 的 RemoteWebDriver 禁用 CORS 检查

    问题说明了一切 我正在尝试在 SauceLabs 上执行一些硒测试 该测试加载一个发出跨域请求的网页 我在想是否有一种方法可以通过代码以独立于平台的方式禁用 CORS 使用时Chrome驱动程序 Chrome组合禁用cors questio
  • 将项目导入 Eclipse 后出现“必须重写超类方法”错误

    任何时候我必须将我的项目重新导入到 Eclipse 中 如果我重新安装了 Eclipse 或者更改了项目的位置 几乎全部我的重写方法的格式不正确 导致错误 该方法必须重写超类方法 值得注意的是 无论出于何种原因 Android 项目中方法参
  • 如何使用二叉树中的递归来完成回溯

    我正在尝试插入一个二进制节点 我的代码很复杂 没有希望挽救它 所以我计划重写它 基本上我没有考虑回溯 也没有仔细考虑算法 我正在尝试使用顺序遍历插入二进制节点 但我不明白应该如何回溯 D B E A C F 我如何搜索根 D 的左子树 然后
  • 参数列表中的“...”是什么意思? doInBackground(字符串...参数)

    我不明白那个语法 尝试用谷歌搜索各种单词加上 是没有用的 它被称为varargs http java sun com j2se 1 5 0 docs guide language varargs html 这个事实应该产生更好的谷歌结果 h
  • Guice 字段注入不起作用(返回 null)

    我在使用 Guice 时遇到空值问题 接下来我将向您展示一个类似场景的示例 我知道字段注入是一种不好的做法 但我希望它在演示中像这样工作 我有一个名为B 这是我要注入的 class B Inject public B public void
  • 通过命令行增加Java中的MaxPermSize内存

    您能否解释一下如何增加此 PermSpace 大小 我正在使用 Gate 应用程序并加载大量数据和大量插件 不幸的是每次运行后都会出现有关内存不足 maxPermSpace 的错误 我到处搜索 但我找不到如何通过命令行增加这个大小 或者可能
  • 使用相对于配置文件的路径引用 Spring 属性文件

    我正在将属性从 Spring 配置文件内部移动到单独的属性文件中 这包含在配置文件中
  • CompletableFuture 的多个 thenAccept 块的执行顺序是什么

    所以我有一个返回a的方法CompletableFuture 在返回之前 此方法添加一个块thenAccept这是在之后执行的CompletableFuture完成 此方法的调用者还添加了另一个块thenAccept 显然 这可以通过多个链式
  • 来自 Janino 和 Commons-Compiler 的 Spark java.lang.NoSuchMethodError

    我正在构建一个使用 Spark 进行基于随机森林分类的 应用程序 当尝试运行该程序时 我从该行收到异常 StringIndexerModel labelIndexer new StringIndexer setInputCol label
  • Java 中的下载管理器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要通过 FTP HTTP 从 Java 获取几个大文件 几个演出 有现成的库 java 命令行工具
  • 如何将 Hibernate 5 安装到 Apache Karaf v4 中

    我已经安装了 Apache Karaf v4 03 并查询了 Hibernate 的可用功能列表 如下所示 不幸的是 我使用的是 Hibernate v5 hibernate 3 3 2 GA Uninstalled enterprise

随机推荐

  • Scala Play Json 读取

    我有一个示例代码如下 import play api libs json import play api libs functional syntax import play api data validation ValidationEr
  • 我应该使用什么 shebang 来始终指向 python3?

    我有一个使用 shebang 的脚本 usr bin env python 它在 Python 3 是唯一可用版本的计算机上运行良好 但在同时具有 Python 2 和 Python 3 的计算机上 它使用 Python 2 运行脚本 如果
  • 如何检测 TabBarView 刚刚被拖动?

    TabBar 小部件有一个 onTap 回调 可以检测用户何时刚刚按下了选项卡 这很有用 因此我们可以准备新的 tabView 来显示一些动态数据 TabBar 小部件还具有拖动功能 允许更改显示的 tabView 与点击另一个选项卡的结果
  • 当我将鼠标悬停在其上方大小发生变化的元素上时,如何防止 div 移动

    http bit ly 1fVGrBT http bit ly 1fVGrBT 这是我的网站 当您将鼠标悬停在 Problem 上并移开时 其下方的 div 会被上下推动 解决方案也会发生同样的情况 有什么想法或建议如何防止它移动吗 我认为
  • 采购后清理全局环境:如何在 R 中删除某种类型的对象

    我读到了一个公共数据集 该数据集在构建最终数据帧的过程中创建了数十个临时向量 由于该数据框将作为更大流程的一部分进行分析 因此我计划source使用创建数据帧的 R 脚本 但不想让自己或未来的用户面临混乱的全局环境 我知道我可以使用ls列出
  • 具有多个字段的对象的Java比较器[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个对象Collection有 5 个字段 id entityType entityId brandId productId 要对一个
  • 如何拦截 .NET 程序中对文件的访问

    我需要在系统尝试访问文件时进行拦截 并在其发生之前执行某些操作 您可以使用FileSystemWatcher http msdn microsoft com en us library system io filesystemwatcher
  • 使用 python-requests 上传文件 - UnicodeDecodeError

    我正在尝试使用 python requests 上传文件 with open file zip rb as fff up requests post url files file fff 并得到 UnicodeDecodeError asc
  • TADOStoredProc 和 SQL Server 存储过程,参数作为默认值

    我正在使用 Delphi 7 和 SQL Server 2008 我创建了一个虚拟表和虚拟存储过程 如下所示 CREATE TABLE dbo Persons P ID int IDENTITY 1 1 NOT NULL LastName
  • 为什么枚举会转换为函数?

    考虑 enum Colors Red Green Blue 它转换成这样 var Colors function Colors Colors Colors Red 0 Red Colors Colors Green 1 Green Colo
  • @classmethod 的位置

    装饰器类方法的源代码位于python源代码中的哪里 具体来说 我无法找到它在版本 2 7 2 中定义的确切文件 我没有回答你的问题 但下面的代码显示了装饰器可能相当于classmethod 用纯 Python 编写 因为源代码中的那个是用
  • Xcode — 在外部编辑器中快速打开当前文件

    是否可以设置键盘快捷键 或者在某处添加一些菜单项 以在外部编辑器中打开当前编辑的文件 显然我可以这样做 在文件树中右键单击 在Finder中显示 在窗口标题中右键单击 选择包含目录 右键单击文件 打开方式 应用程序 但步骤太多了 呵呵 我已
  • Hibernate 搜索查找短语的部分匹配

    在我的项目中 我们使用带有 lucene 分析器和 Solar 的 Hibernate Search 4 5 我向我的客户提供一个文本字段 当他们输入一个短语时 我想找到所有User名称包含给定短语的实体 例如 考虑数据库中具有以下标题的条
  • 什么时候问题对于正则表达式来说太复杂了?

    请不要回答显而易见的问题 但是有哪些限制标志告诉我们不应使用正则表达式来解决问题 例如 为什么完整的电子邮件验证对于正则表达式来说太复杂 正则表达式是以下内容的文本表示有限状态自动机 http en wikipedia org wiki F
  • 如何使用 C++ 模板减少编译时间

    我正在将我的 C 应用程序的一部分从使用旧的 C 类型数组更改为模板化的 C 容器类 看这个问题 https stackoverflow com questions 2472944 good c array class for dealin
  • iOS 11 iPhone X 模拟器选项卡栏图标和标题呈现在顶部,相互覆盖

    有人对 iPhone X 模拟器的 UITabBar 组件有疑问吗 我的似乎将图标和标题渲染在彼此之上 我不确定我是否遗漏了任何东西 我也在 iPhone 8 模拟器中运行了它 以及一个实际设备 它看起来很好 正如故事板 iPhone X
  • Cloudformation - 无法导入资源

    我正在创建 Step Functions 并希望在 cloudformation 代码中引用 Lambda 函数 lambda 已经从单独的堆栈创建并导出为LambdaA从那个堆栈 当我尝试导入时遇到问题LambdaA进入我的步骤功能代码
  • 支持不同语言

    我有 textView 和 ListView 我在列表视图中列出了支持语言 当我单击任何语言 Textview 文本需要更改时 Code String lang new String English French ListView list
  • Node.js 服务器有多个并发请求,它是如何工作的?

    我知道node js是单线程 异步 非阻塞I O 我读过很多相关内容 例如 PHP 每个请求使用一个线程 但 Node 只对所有请求使用一个线程 就像这样 假设有三个请求a b c同时到达node js服务器 其中三个请求需要大型阻塞操作
  • dropbox(文件放置)api 使用什么内容类型?以及如何模仿它?

    我正在读文件放置 https www dropbox com developers core docs files putDropbox API 的文档 他们使用的 URL 路径是 https api content dropbox com