2016-01-06 94 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