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

Downloading file though Box API 2.0 giving 200 as response instead of 302 found

我正在尝试使用以下代码从 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>

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

不确定为什么我会收到 200 作为响应。我需要通过 API 调用下载文件。我错过了什么吗?

关于@Miguel-F 的评论,我已经上网并找到了 Ben Nadel's post 的解决方案。

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

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

所以我将 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

对于这个响应,我们在 ResponseHeader 中有 Location 键(代码在其中被重定向)。因此,通过使用位置 URL,我们可以使用 CFHEADER 和 CFCONTENT 标签下载文件。

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