首先,我意识到我并不是第一个提出这个问题的人,但我确实需要一个与libcurl不同的解决方案。
我想要做的基本上是向服务器发出HTTP请求并将响应读入std :: string值(char *或CString也可以。)
libcurl对我的偏好来说太大了(我需要做静态链接;我不能用我的应用程序发送DLL,我想尽可能地保持它,curl使我的应用程序关于3M更大)。
感谢您的帮助!
答案 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上提供了大量解释和示例。