Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I'm trying to download a file from Box.com through API using the following code.

<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>

As per documentation it should return 302 Found as response. And redirects to dl.boxcloud.com for download. But I'm getting 200 as response.

enter image description here

Not sure why I'm getting 200 as response. I need to download the file through the API call. Did I missed anything?

like image 495
Rajesh Manilal Avatar asked Oct 17 '22 14:10

Rajesh Manilal


1 Answers

With respect to @Miguel-F's comment, I've surfed and found a solution from Ben Nadel's post.

I've got 200 as response, this is because ColdFusion followed the redirect to dl.boxcloud.com (since by default, the REDIRECT attribute is TRUE), and the redirected request's response is 200.

Actually we should stop the redirect by setting REDIRECT attribute to FALSE. So that Coldfusion will return actual response to the invoking code.

So I've set REDIRECT attribute to 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>

And now I'm getting 302 found as response as per the documentation.

enter image description here

With this response, we're having Location key (in which the code was redirected earlier) in the ResponseHeader. So by using the Location URL we can download the file using CFHEADER and CFCONTENT tags.

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

like image 184
Rajesh Manilal Avatar answered Oct 21 '22 06:10

Rajesh Manilal