HTTP中的HTTP获取请求

时间:2012-12-22 16:35:04

标签: c++ http get

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

代码示例也很好。

2 个答案:

答案 0 :(得分:8)

如果您不想使用外部库,则必须自己实施HTTP。当你只需要基本功能(直接下载文件,没有重定向,没有代理,没有cookie,没有身份验证,没有加密,没有压缩,没有其他恶作剧)时,这甚至都不是那么难。

创建套接字,将其连接到网络服务器的端口80,然后将以下字符串发送到服务器:

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

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

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

答案 1 :(得分:2)

  1. 大多数库都可以静态编译。当您使用静态库时,它会链接到您的可执行文件中,您不必运送库的dll。也许这会有所帮助:Walkthrough: Creating and Using a Static Library (C++)
  2. 某些库可以是仅标头或仅在标头模式下使用:编译器将库拉入源。同样,没有为库生成DLL。例如,您可以尝试getting Asiocpp-netlib以仅限标头模式工作。还有一个简单的http客户端,只是为了Asio躺在某个地方。
  3. 认为您可以使用WinINetWinHTTP而不发送任何DLL。