0

我正在尝试使用 php 中的 API 使用 box.net 下载文件。根据文档,我编写了代码。

但作为回应,我收到了一些奇怪的短信。这是我的代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.box.com/2.0/files/3934139624/content ");
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_HTTPGET,true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: BoxAuth api_key={MyApikey}&auth_token={Mytoken}"));
$result = curl_exec($ch);
die('DIE'); 

我得到这样的回应:

PK!Ðòš-[Content_Types].xml ¢( ´UËNÃ0¼#ñ'¯¨qË!Ô´G¨Dù×Þ´‰mÙÛ×ß³IšA›ˆ†^"EÎÎÌÎÎnÆÓ]žEðA[“°QH¯~ÉŸb üv8¼ãÒƒ,0ØdüF¼VÍ „ÇW'ßZ¯xj-‹b,cÑcUWP'L8—i)„óQ?H6Mµeå:'ª¸€sÞJZ˳¸¾) ùdü©Xg=ïH[e‡‡,üõÐfL•¥²°Ò.´0´· uPvÒž¦»v~3Üis¡Mÿ¤³ÎàÉ×ÿSÝ)"à>»DP*ÜNz0êBI'Û$мfÞºÀi+zŠ P ´0"f3°£\...ȾTºI S'ÌõŒ«º¾ÇôWš™¦ÚY igï@µÇX6_Ö]7~ fïØˉÈaoÙ.b*lIÆrj)õ,l0Ï%'b¬ 6ài¢ÕõDÿ_‹Ž..., ¡ ‰Ïó|uœZ^tÙ¢yǯ;!Y,}{ûCƒ³/h>ÿÿPK!¿hJä1>word/rels/document.xml.rels ¢( ¬"ËNÃ0E÷HüCä=qR q'æ>¾ƒ"'ˆsµà©WÃ-ŽÌEî›nâ>ðÍqã¨Í§y±3ÆóüükeìE±ty'àÕ³üÍ黦ÏÖ¤KLÏhóÊŸi¾IàˆpzÒŽ¹ç?}xÛxx ;ùgïÐ¥f7Yô KéMèwÄÆÇÐEïúÃF§³ß9ètÏ7ÌKWxÐ/žñ¡“ùéâ;W...—Ô•¯bú%B×óù§ìv îã㡈“ô£ 8ÜílìÐqq~x|!Ã4Á1Nâ ñaãVš+¾•ËÓr¤ØLe'õc”ójS“ Œ(ñR'»>wbriê'6œ,•ôçPøH†.ÔO«<çµ¼G›[¯ ‹<code>Ÿ~ëÈŒcñ)“ )ò<4/nÌ—ôEÛþßpÄÙ÷æ¬Û?xg«\ÖîЃSäÀ• Ç°tÒ(¾‹³ƒwïg~³ÕKøŒ;ù¾.†ì, l©´ªµÐm¯]‰ŠTíßnÁ¿·ß¤/ë»–ª"짓6õ”^Qð-wô—Qð]6bé à²@ÆûÍ# ¡™∼×Fa'™Â†êMî'ÂÛ¿U*XÆÞ/¾\ÁÜl X5HñKÕ~sØ8EÌ/!вÃÐeq”µ±dº¨É…â›,R—7ЊU¹iØF:h±FÎç¢àõð¾ôÈ!~&æ', ADSÈP¸L'M.úìäpow ½Ý(¥Ú·R ãpK0è7^;¿Lë4f¤P3Ì...#M s´ï¡Ü:...(@à(1ß;9|÷S½°T4ϹF²ì%“$åÁf“tÖة⼪R& 〜æÖQ nn†)@éóÒfŽBC?‰ð€()ÄÝ(%LNËñ)V^«ÞÛ¶[5+Í>jÀ£WlŽ÷¡¿)ÁoôFBû›CÕ©ë­Ü™ÖI¦×ƤHX-ijž^ÀDûs“ ...Ø}

谁能告诉我如何处理这种回应?提前致谢。

4

2 回答 2

0

@GBD 以下来自响应标头:

HTTP/1.1 302 找到服务器:nginx 日期:星期三,2012 年 11 月 14 日 09:11:51 GMT 内容类型:文本/html;charset=utf-8 Connection: keep-alive Cache-control: private Location: https://dl.boxcloud.com/bc/1/85f471520cf611a05025a5f/JolueqOGpciD6dgYhecNBoVpYxkvmYe1ZLheZor6BF4DUBIelMQTkFwYIys3nIibNIIEHUp447tBZLaXDzIbNQ,,/a44510a2b21219463fade41d6b36dabf/ Content-Length: 0

HTTP/1.1 200 OK 服务器:nginx 日期:2012 年 11 月 14 日星期三 09:11:52 GMT 内容类型:application/vnd.openxmlformats-officedocument.wordprocessingml.document 内容长度:19944 连接:keep-alive 缓存控制:私有接受范围:字节内容处置:附件;文件名=“云计算提案.docx”;文件名*=UTF-8''cloud%20computing%20proposal.docx X-内容类型选项:nosniff 接受范围:字节

并将文件保存在 xml 中,无法打开。

于 2012-11-14T09:16:57.113 回答
0

根据 box.net api 文档:

对该请求的响应将只是文件本身的完整数据。

因此,您只需要在本地保存文件内容。

在响应标头中,您需要check content-type,现在它是XML

$result = curl_exec($ch);
$fp = fopen('test.xml','wb');
fwrite($fp, $result);
fclose($fp);
于 2012-11-14T08:39:07.817 回答