Raj*_*lal 5 coldfusion box-api box boxapiv2
我正在尝试使用以下代码通过 API从Box.com下载文件。
<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>
Run Code Online (Sandbox Code Playgroud)
根据文档,它应该302 Found
作为响应返回。并重定向到 dl.boxcloud.com 进行下载。但我得到的200
回应。
不知道为什么我得到 200 作为回应。我需要通过 API 调用下载文件。我错过了什么吗?
关于@Miguel-F 的评论,我已经浏览并从Ben Nadel 的帖子中找到了解决方案。
我得到 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>
Run Code Online (Sandbox Code Playgroud)
现在我得到了302 found
根据文档的响应。
通过此响应,我们在 ResponseHeader 中拥有Location
密钥(其中代码之前被重定向)。因此,通过使用位置 URL,我们可以使用 CFHEADER 和 CFCONTENT 标签下载文件。
参考: https: //www.bennadel.com/blog/934-ask-ben-handling-redirects-with-coldfusion-cfhttp.htm