1

POSTMAN経由でBOXAPI経由で画像ファイルをダウンロードしようとしています。ファイルIDは6917417032です

私のコードは次のとおりです 。https ://api.box.com/2.0/files/6917417032/content ヘッダーに認証コードを指定しました

ドキュメントには次のように記載されています。返品ファイルをダウンロードできる場合、応答はdl.boxcloud.comのURLに対して302Foundになります。クライアントは、実際にファイルをダウンロードするためにリダイレクトに従う必要があります。ファイルIDが無効であるか、ユーザーがファイルにアクセスできない場合を除いて、ファイルの生データが返されます。

POSTMANでの私の応答は「200、OK」です。dl.boxcloud.comへの302はありません。POSTMANは空白のサムネイルもプレビューします。ワードドキュメントに対して同じ操作を実行すると、POSTMANはドキュメントの次のドキュメントを表示します。私が期待していたのは、ファイルのダウンロードダイアログボックス、または前の段落で説明したURLでした。

curlのサンプルコードと応答も、戻り値を説明する段落とは異なることに注意してください。

方法

GET / files / {file id} / content

リクエスト例

curl -Lhttps: //api.box.com/2.0/files/FILE_ID/content**強力なテキスト**-H"認証:ベアラーACCESS_TOKEN"

応答例ダウンロードしたばかりのテキストファイルの生のテキスト(ダウンロードが成功しました)

4

2 に答える 2

3

ここで何が起こっているのかを難読化する 2 つのことがあります。

  1. POSTMAN は GET 要求のリダイレクトに従いますが、要求履歴に関する情報は提供しません (たとえば、GET URL1 と言って GET URL2 にリダイレクトされた場合、GET URL2 の結果は提供されますが、元の GET URL1 について通知されるだけです)。

  2. ドキュメントの cURL の例には、 cURL に redirect に従うように指示する -L フラグが含まれています。cURL は、明示的に要求された以外の情報を提供することは知られていません。これはその別のケースです。

実際に何が起こっているかを確認したい場合は、'v フラグを追加して cURL を冗長モードにし、発生するすべてを確認できます。次に例を示します。

curl -v -L https://api.box.com/2.0/files/FILE_ID/content -H "Authorization: Bearer TOKEN"

* About to connect() to api.box.com port 443 (#0)
*   Trying 74.112.184.225...
* connected
* Connected to api.box.com (74.112.184.225) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using RC4-SHA
* Server certificate:
*    subject: serialNumber=ts5jamwzcjWP0oTyh2m74yh0zsB2zyOR; C=US; ST=California; L=Palo Alto; O=Box.net, Inc.; CN=*.box.com
*    start date: 2011-09-27 22:07:27 GMT
*    expire date: 2013-09-29 11:02:11 GMT
*    subjectAltName: api.box.com matched
*    issuer: C=US; O=GeoTrust, Inc.; CN=GeoTrust SSL CA
*    SSL certificate verify ok.
> GET /2.0/files/5620199214/content HTTP/1.1
> User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
> Host: api.box.com
> Accept: */*
> Authorization: Bearer TOKEN
> 
< HTTP/1.1 302 Found
< Server: nginx
< Date: Sun, 17 Mar 2013 20:48:40 GMT
< Content-Type: text/html; charset=utf-8
< Connection: keep-alive
< Cache-control: no-cache, no-store
< Location: https://www.boxcloud.com/bc/1/b4c1b5e872bf843d3ded7bcae5f4f175/2Of-pgQHiFlfW6KldVyHAxtUIEW0l7HoOpi14-VGcxcSnn2CtobCO1UjJZLI58w_oCTNcPMKbUR_gn-ncDkAbw,,/f9a04d69f716d92ceebd848bb9ccded8/
< Content-Length: 0
< 
* Connection #0 to host api.box.com left intact
* Issue another request to this URL: 'https://www.boxcloud.com/bc/1/b4c1b5e872bf843d3ded7bcae5f4f175/2Of-pgQHiFlfW6KldVyHAxtUIEW0l7HoOpi14-VGcxcSnn2CtobCO1UjJZLI58w_oCTNcPMKbUR_gn-ncDkAbw,,/f9a04d69f716d92ceebd848bb9ccded8/'
* About to connect() to www.boxcloud.com port 443 (#1)
*   Trying 74.112.184.74...
* connected
* Connected to www.boxcloud.com (74.112.184.74) port 443 (#1)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using RC4-SHA
* Server certificate:
*    subject: serialNumber=o2MxwjKDoF9mEZ3YNhBMR/WISRBUXT6b; C=US; ST=California; L=Palo Alto; O=Box, Inc.; CN=*.boxcloud.com
*    start date: 2012-02-27 00:10:39 GMT
*    expire date: 2014-03-01 01:48:45 GMT
*    subjectAltName: www.boxcloud.com matched
*    issuer: C=US; O=GeoTrust, Inc.; CN=GeoTrust SSL CA
*    SSL certificate verify ok.
> GET /bc/1/b4c1b5e872bf843d3ded7bcae5f4f175/2Of-pgQHiFlfW6KldVyHAxtUIEW0l7HoOpi14-VGcxcSnn2CtobCO1UjJZLI58w_oCTNcPMKbUR_gn-ncDkAbw,,/f9a04d69f716d92ceebd848bb9ccded8/ HTTP/1.1
> User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
> Host: www.boxcloud.com
> Accept: */*
> Authorization: Bearer TOKEN
> 
< HTTP/1.1 200 OK
< Server: nginx
< Date: Sun, 17 Mar 2013 20:48:41 GMT
< Content-Type: image/png
< Content-Length: 15039
< Connection: keep-alive
< Cache-control: private
< Accept-Ranges: bytes
< Content-Disposition: attachment;filename="Screenshot_1_14_13_5_33_PM.png";filename*=UTF-8''Screenshot_1_14_13_5_33_PM.png
< X-Content-Type-Options: nosniff
< Accept-Ranges: bytes
< 
?PNG
…
于 2013-03-17T20:51:03.500 に答える