OneDrive REST API下载返回200而不是302

时间:2016-01-06 11:16:40

标签: onedrive

我正在使用WinHttp *函数从C ++程序访问OneDrive。绝对令我困惑的是REST API download command。我正在用

下载一张小测试图片
GET /v1.0/drive/items/FF306293D40F9529!158/content

当我在console中执行此操作时,我会得到完全按照文档中所述的响应,即302重定向到实际内容。但是,当我使用WinHttpSendRequest发送相同的请求时,我收到实际的文件内容而不是重定向:

HTTP/1.1 200 OK
Cache-Control: public
Date: Wed, 06 Jan 2016 10:22:36 GMT
Content-Length: 161796
Content-Type: image/jpeg
Content-Location: https://public-bn1306.files.1drv.com/blahblahbla
Expires: Tue, 05 Apr 2016 10:22:36 GMT
Last-Modified: Wed, 06 Jan 2016 10:22:35 GMT
Accept-Ranges: bytes
ETag: aRkYzMDYyOTNENDBGOTUyOSExNTguMw
P3P: CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
Server: Microsoft-IIS/8.5
X-MSNSERVER: BN1306____PAP099
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-SqlDataOrigin: S
CTag: aYzpGRjMwNjI5M0Q0MEY5NTI5ITE1OC4yNTc
X-PreAuthInfo: rv;poba;
Content-Disposition: attachment; filename="Test.jpg"
X-Content-Type-Options: nosniff
X-StreamOrigin: X
X-AsmVersion: UNKNOWN; 19.33.0.0
X-MSEdge-Ref: Ref A: 44F40B6FB83547EFBC895911207BDB42 Ref B: 96336B0FC1B608598B549A1CB70C8C59 Ref C: Wed Jan 06 02:22:36 2016 PST

首先我想也许是因为文件很小,但尝试下载250Mb的大型二进制文件却没有改变任何内容。

实际上,我并没有抱怨,这会使程序变得更简单,但我当然想知道为什么同样的请求与WinHttp *的工作方式不同。我想我做错了什么,但是什么??? (把我的头撞在我的桌子上。)

1 个答案:

答案 0 :(得分:0)

有些http库会自动跟踪重定向。您发送请求,库接收302,并自行决定转到重定向位置,然后返回200.