用C++下载URL

Use*_*er1 6 c++ sockets

我希望能够用C++下载URL.简单的事情:

std::string s;
s=download("http://www.example.com/myfile.html");

理想情况下,这将包括以下URL:

我在Boost中使用asio,但它似乎没有处理ftp和https等协议的代码.现在我发现QT有更多我需要的东西(http://doc.trolltech.com/2.3/network.html).

切换到Qt是很诱人的,但它似乎有点沉重,并且与很多Boost功能相交叉.是否值得学习另一个API(Qt)或者Boost能做的比我想象的要多吗?

Dav*_*ble 18

不是直接的答案,但你可能想考虑libCURL,这几乎就是你所描述的.

有示例应用程序在这里,特别是证明了简单的使用都可以.


Mic*_*ati 5

您可以使用URLDownloadToFile

#include <Urlmon.h>
    HANDLE hr;
    hr=URLDownloadToFile(NULL, L"http://www.example.com/myfile.html",L"mylocalfile.html",BINDF_GETNEWESTVERSION,NULL);
Run Code Online (Sandbox Code Playgroud)

根据MSDN,BINDF_GETNEWESTVERSION - 是一个“指示绑定操作检索可用数据或对象的最新版本的值。在 URL 名称中,此标志映射到 WinInet 标志 INTERNET_FLAG_RELOAD,它强制下载所请求的资源” 。