如果我按照框api 2.0 curl示例获取文件的元数据,我会得到相关信息。当我将/ data附加到url下载文件时,curl说:
curl:(52)来自服务器的空回复
我用两个文件做了这个,两个文件都有相同的结果。
这里的系统是OpenBSD 5.0。
在python 3中,同一个请求引发了一个异常,该异常表明来自服务器的回复包含一个空的状态行。
答案 0 :(得分:3)
我有同样的问题。问题是您需要将CURLOPT_FOLLOWLOCATION
选项设置为true。 Box将执行从API调用到实际文件的重定向。没有它,它将返回一个空的响应。
答案 1 :(得分:1)
如果文件本身为空,则应返回空响应。例如,如果两个文本文件中没有任何文本,则不会返回任何文本,即这似乎是预期的行为。
答案 2 :(得分:1)
我遇到了同样的问题。我已成功上传文件,检索文件ID,然后当我尝试下载文件时,没有任何反应。就像上面提到的原始海报一样,如果我取消了URL的“/ data”部分,那么我可以成功获得有关该文件的所有信息。
这是我的“下载代码”,它从一个带有该特定文件ID的简单“下载文件”按钮的表单中调用。
$boxkey = "ThisIsMyAPIKey";
$auth_token = $_POST['auth_token'];
$url = "https://www.box.com/api/2.0/files/".$_POST['file_id']."/data";
$header = array("Authorization: BoxAuth api_key=".$boxkey."&auth_token=".$auth_token);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_exec($ch);
curl_close($ch);
答案 3 :(得分:-1)
$url = "https://api.box.com/2.0/files/$fileId/content?access_token=$accessToken";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close($ch);