发出URL请求并读取字符串

时间:2015-04-19 10:21:59

标签: c++ string http url

首先,我意识到我并不是第一个提出这个问题的人,但我确实需要一个与libcurl不同的解决方案。

我想要做的基本上是向服务器发出HTTP请求并将响应读入std :: string值(char *或CString也可以。)

libcurl对我的偏好来说太大了(我需要做静态链接;我不能用我的应用程序发送DLL,我想尽可能地保持它,curl使我的应用程序关于3M更大)。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我遇到了完全相同的问题,我的解决方案是:

DeleteUrlCacheEntryA("http://example.com/file.txt");
DWORD state = URLDownloadToFileA(NULL, "http://example.com/file.txt", "file.txt", 0, NULL);
if (state != S_OK)
{
    // can not download...
    return;
}

std::ifstream file("file.txt");
std::string result((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
file.close();
DeleteFileA("file.txt");

由于临时文件,它有点不准确,但它适用于我,我希望它对你有用。

答案 1 :(得分:0)

考虑到您显然将Windows作为平台,您可以考虑使用windows http services api

它无法移植到其他平台,但它具有内置的优势.MSDN在how to use it上提供了大量解释和示例。