2016-01-06 96 views
1

我正在使用WinHttp *函数从C++程序访问OneDrive。什么让我感到困惑的是REST API download command。我下载一个小的测试画面与OneDrive REST API下载返回200而不是302

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 *有不同的作用。我想我做错了什么,但什么? (把我的头撞到我的桌子上。)

回答

0

有一些http库会自动遵循重定向。你发送一个请求,图书馆收到302,并决定自己去重定向的位置,然后返回200.

+0

gnasher729,谢谢,但它似乎并不是这样。上面更详细的回复。 – freim