【问题标题】:WebClient in C++C++ 中的 Web 客户端
【发布时间】:2013-03-03 13:22:43
【问题描述】:

我正在编写一个需要能够将 HTML 源代码读入字符串的程序。

我已阅读有关 C# 的 WebClient 的信息,但我需要用 C++ 编写我的程序,但我不知道该怎么做(我以前从未使用过 WebClient)。

谁能给我一个简单的 C++ 示例程序,向我展示如何使用 WebClient 将 HTML 源代码转换为字符串? (或任何更好的方法)

谢谢。

【问题讨论】:

  • 一旦您将 HTML 保存在内存中,您与它有什么关系?真的只是阅读,还是需要解析结构?
  • 我正在将它读入一个字符串并在字符串中搜索数字(但我对那部分很好)它只是将源代码放入我不知道如何的字符串中做
  • 您是从文件中读取它还是从网络上读取它?
  • 直接从web变成一个字符串,或者直接从web变成一个文件
  • 2人已经回答了如何从文件到内存中,你可以使用curl从网络中获取到文件:curl.haxx.se/docs/httpscripting.html

标签: c++ html .net webclient


【解决方案1】:

请参阅此页面,C++ 中的全功能 Windows HTTP 包装器

http://www.codeproject.com/Articles/66625/A-Fully-Featured-Windows-HTTP-Wrapper-in-C

来自该页面的示例代码,看起来像你想要的:

void ProgressTest(void)
{
    // Set URL and call back function.
    WinHttpClient client(L"http://www.codeproject.com/", ProgressProc);
    client.SendHttpRequest();
    wstring httpResponseHeader = client.GetResponseHeader();
    wstring httpResponseContent = client.GetResponseContent();
}

【讨论】:

    【解决方案2】:

    我不知道 c# 的 webclient 是什么。将文件读入字符串:

     std::ifstream ifs("webpage.html");
     std::string str;
     str.assign((std::istreambuf_iterator<char>(ifs)),
                (std::istreambuf_iterator<char>()));
    

    【讨论】:

    • 正如问题标题所暗示的那样,操作想要使用 http 请求访问文件,因此需要获取 web 客户端。
    猜你喜欢
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2014-09-04
    • 1970-01-01
    相关资源
    最近更新 更多