3

我需要向我的站点发送一个 HTTP GET 请求,然后获取页面内容并对其进行解析。我宁愿不使用 libCURL 之类的库,因为我希望最终应用程序完全独立(这是从个人经验中引用的,我可能是错的,但如果我记得客户端必须有某些动态链接库才能使用 libCURL 运行应用程序库。),我在 Visual Studio 2012 中使用 C++。

代码示例也很好。

4

2 回答 2

8

当您不想使用外部库时,您将不得不自己实现 HTTP。当您只需要基本功能(直接下载文件、无重定向、无代理、无 cookie、无身份验证、无加密、无压缩、无其他恶作剧)时,这甚至不是那么难。

创建一个套接字,将其连接到 Web 服务器的 80 端口,并将以下字符串发送到服务器:

"GET /example.html HTTP/1.1\r\n"
"Host: www.example.com\r\n"
"\r\n"

这会从您连接的服务器请求文件 www.example.com/example.html。

服务器将使用自己的 HTTP 响应标头进行响应,后跟数据(或错误描述)。

于 2012-12-22T16:39:33.873 回答
3
  1. 大多数库都可以静态编译。当您使用静态库时,它会链接到您的可执行文件中,您不必发送库的 dll。也许这会有所帮助:演练:创建和使用静态库(C++)
  2. 一些库可以是仅标头或以仅标头模式使用:编译器将库拉入您的源代码。同样,没有为库生成 dll。例如,您可以尝试让 Asiocpp-netlib在仅标头模式下为您工作。还有一个简单的 http 客户端示例,仅适用于某处的 Asio。
  3. 认为您可以使用WinINetWinHTTP而无需提供任何 DLL。
于 2012-12-22T17:16:16.583 回答