1

如果我按照 box api 2.0 curl 示例获取文件的元数据,我会得到信息。当我将 /data 附加到 url 以下载文件时,curl 说:

curl:(52)来自服务器的空回复

我用两个文件做了这个,都是文本文件,结果相同。

这里的系统是 OpenBSD 5.0。

在 python 3 中,相同的请求引发了一个异常,表明来自服务器的回复包含一个空的状态行。

4

4 回答 4

3

我遇到过同样的问题。问题是您需要将CURLOPT_FOLLOWLOCATION选项设置为true。Box 将执行从 API 调用到实际文件的重定向。没有它,它将返回一个空响应。

于 2012-08-15T16:41:39.317 回答
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); 
于 2012-06-26T09:03:39.350 回答
1

如果文件本身为空,则应返回空响应。例如,如果两个文本文件中没有任何文本,则不会返回任何文本,即这似乎是预期的行为。

于 2012-04-27T21:33:05.227 回答
-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);
于 2015-05-14T14:34:29.797 回答