我正在寻找网页的来源并将其添加到字符串中,我看到的所有指南虽然使用curl或winsockets,但我需要这是交叉兼容的并且只使用C ++(没有外部库)< / p>
有人能指出我正确的方向吗?
感谢。
答案 0 :(得分:2)
您可能需要查看boost::asio
。它提供跨平台网络,涵盖TCP / IP。 boost
不是标准库,而是事实上的第二标准C ++库。顺便说一下,很多boost
内容最终都在std
。
接下来是HTTP客户端。遗憾的是,标准C ++库没有HTTP客户端,但协议的基本部分实现非常简单,您可以尝试自己动手 - 您可能只需要GET请求。尝试通过telnet发送GET请求,手动输入 - 你会发现它非常简单。
如果需要SSL / TLS或完整的HTTP支持,您可能会被迫使用第三方库,因为实施它们不仅具有挑战性。
答案 1 :(得分:0)
仅适用于没有外部库的C ++?没有这样的事情。
Qt是相当跨平台的,支持Windows,Linux,MacOS,Android,iOS和其他一些更具异国情调的平台,以及嵌入式平台。
Qt 4有一个专用的QHttp
类,但它在Qt 5中被弃用并删除了。对于Qt 5,你将不得不使用QNetworkAccessManager
类:
可以通过以下方式从网络上简单下载:
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://qt-project.org")));
是的,Qt 5是一个很大的框架,对于单一任务的目的来说几乎没有道理,但另一方面,它是非常强大,非常便携的应用程序开发框架,所以它很可能在其他方面派上用场同样。