coldfusion - 通过 Box API 2.0 下载文件给出 200 作为响应而不是 302 找到

标签 coldfusion box-api box boxapiv2

我正在尝试从 Box.com 下载文件通过 API 使用以下代码。

<cfhttp url="https://api.box.com/2.0/files/(FILE_ID)/content/" method="GET" redirect="true" >
<cfhttpparam type="header" name="Authorization" value="Bearer (DEVELOPER_TOKEN)">
</cfhttp>

根据文档,它应该返回 302 Found作为回应。并重定向到 dl.boxcloud.com 进行下载。但我收到 200作为回应。

enter image description here

不知道为什么我得到 200 作为回应。我需要通过 API 调用下载文件。我错过了什么吗?

最佳答案

关于@Miguel-F 的评论,我在网上冲浪并找到了来自 Ben Nadel's post 的解决方案。 .

我有 200 作为响应,这是因为 ColdFusion 跟随重定向到 dl.boxcloud.com(因为默认情况下,REDIRECT 属性为 TRUE),并且重定向请求的响应是 200。

实际上我们应该通过将 REDIRECT 属性设置为 FALSE 来停止重定向。 .这样 Coldfusion 将返回对调用代码的实际响应。

所以我将 REDIRECT 属性设置为 FALSE .

<cfhttp url="https://api.box.com/2.0/files/(FILE_ID)/content/" method="GET" redirect="false" >
<cfhttpparam type="header" name="Authorization" value="Bearer (DEVELOPER_TOKEN)">
</cfhttp>

现在我收到 302 found作为响应根据 documentation .

enter image description here

有了这个回复,我们有了 Location ResponseHeader 中的键(代码在前面被重定向)。因此,通过使用位置 URL,我们可以使用 CFHEADER 和 CFCONTENT 标签下载文件。

引用: https://www.bennadel.com/blog/934-ask-ben-handling-redirects-with-coldfusion-cfhttp.htm

关于coldfusion - 通过 Box API 2.0 下载文件给出 200 作为响应而不是 302 找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43253959/

相关文章:

rust - 无法将实现特征的结构装箱为特征对象

jquery - 如何同时返回 "id"和 "text"

rest - ColdFusion 10 REST API : How to set status code 201 without RestSetResponse()

box-api - 当文件超过 3MB 时,上传 api 失败并抛出以下异常

c# - BOX:使用 AppUser 用户 token 将协作添加到文件夹

ios - box-ios-preview-sdk : Memory leak in pspdfkit

html - div 内的边界框/框

json - 如何从ColdFusion中的CFC返回小写的JSON?

coldfusion - 在 ColdFusion 中显示数据透视查询的结果

python - 如何将 Python Keyring 与 Box API OAuth2 结合使用?