如何检查网站是否包含C ++中的字符串?

时间:2019-01-17 11:12:19

标签: c++

所以我主要是使用ac#编码器,但是我希望切换到c ++,我正在寻找有关如何在c ++中读取网站的答案,然后检查它是否具有特定的字符串,这是我的c#代码以供参考。

string stringexample = "active";
WebClient wb = new WebClient();

string LIST = wb.DownloadString("URL");

if (LIST.Contains(stringexample))

2 个答案:

答案 0 :(得分:2)

您可以使用以下步骤:

  1. 使用HTTP请求页面
  2. 将响应存储到std::string
  3. 使用std::string::find

棘手的部分是步骤1。C ++没有标准的HTTP客户端。它也没有标准的网络API。您可以在以下位置找到HTTP规范:https://tools.ietf.org/html/rfc2616,可用于实现HTTP客户端。但是,与所有编程任务一样,使用现有的实现可以节省很多工作。

答案 1 :(得分:1)

Standard C ++没有网络实用程序,但是您可以使用boost::asio库下载网页的内容并搜索字符串"active"

一种方法:

boost::asio::ip::tcp::iostream stream("www.example.com", "http");
stream << "GET /something/here HTTP/1.1\r\n";
stream << "Host: www.example.com\r\n";
stream << "Accept: */*\r\n";
stream << "Connection: close\r\n\r\n";
stream.flush();

std::ostringstream ss;
ss << stream.rdbuf();
std::string str{ ss.str() };

if (auto const n = str.find("active") != std::string::npos)
  std::cout << "found\n";
else
  std::cout << "nope\n";