2012-04-27 4 views
1

ファイルのメタデータを取得するために、api 2.0 curlの例に従えば、その情報が得られます。私は、ファイルをダウンロードするためのURLに/データを追加すると、カールは言う:ファイルのダウンロードのカールがうまくいかない

カール:サーバー

から(52)空の回答が、私は2つのファイルの両方のテキストファイル、同じ結果でこれをやりました。

ここのシステムはOpenBSD 5.0です。

python 3では、サーバーからの応答に空のステータス行が含まれているという例外が発生します。

答えて

1

ファイル自体が空の場合は、空の応答が返されます。たとえば、2つのテキストファイルにテキストが含まれていない場合、テキストは返されません。つまり、これは予想される動作です。

+0

でも、両方のファイルにテキストが含まれています。 – user1359805

+0

これは私にとっても起こっているようですが、バグかもしれません。私はそれを見てみましょう、私はここでフォローアップします。 – seanrose

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

私は同じ問題がありました。問題は、CURLOPT_FOLLOWLOCATIONオプションがtrueに設定されている必要があることです。 Boxは、API呼び出しから実際のファイルへのリダイレクトを実行します。それがなければ、空の応答を返します。

+0

これはコマンドラインでどのように行うのか不思議で、 '-L'オプションなので、' curl -L ' –

-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); 
関連する問題