2012-11-12 38 views
0

可能重複:
How to download a file with WinHTTP in C/C++?如何使用C++在Windows上通過HTTPS從Internet上檢索文件?

我有一個網址,例如:

https://dl.dropbox.com/u/5465642/myfile.xml

和Windows C++應用程序。當我的應用程序啓動時,我想花費2秒鐘的時間來嘗試將文件下載到應用程序內存中。如果文件被下載,我會用它做我的東西。如果沒有,我會跳過它。我不想爲此使用C#和.Net。沒有繁重的外部庫或DLL。可能是WinApi或一些小型外部庫。在Windows XP和更高版本上工作。不依賴於IE瀏覽器版本或類似的東西。

+1

你卡在哪裏?套接字,SSL,HTTP? – mfontanini

+0

導入msxml6庫。它附帶(可能vista?win7肯定會出現)並且可以安裝在XP上。啓動COM並創建IXMLHTTPRequest對象併發送請求。比WinHttp庫和雜耍證書要容易得多。 https://msdn.microsoft.com/en-us/library/ms759148(v=vs.85).aspx – jmucchiello

回答

0

獲取主機的IP,打開套接字,連接到IP,執行SSL/TLS握手,執行獲取,關閉套接字。對於握手,您使用AcquireCredentialsHandle,InitializeSecurityContext,QueryContextAttributes,CertVerifyTimeValidity等等。對於發送,您將使用EncryptMessage。爲了接收您將使用DecryptMessage。搜索使用這些API的微軟示例,你會沒事的。在握手過程中管理您自己的recv超時並處理超時。

相關問題