C ++有什么CURL替代品吗?

时间:2009-11-29 19:08:56

标签: c++ http curl

我讨厌CURL,当我需要做的就是快速打开一个URL时,它太笨重了,依赖太多了。我甚至不需要检索网页的内容,我只需要向服务器发出GET HTTP请求。

我能做到这一点的最小方法是什么,不要说CURL!@#$

5 个答案:

答案 0 :(得分:6)

lots of choices !尝试 libwww - 但要注意,大多数人都非常喜欢libcurl。它更容易使用。

答案 1 :(得分:3)

这是一种非常轻松的方式,我在为英国大型媒体提供商实施大规模后端服务时自己也做到了这一点。

此方法特定于操作系统。

  1. 打开HTTP服务器的TCP套接字
  2. 发送“GET /path/to/url HTTP/1.1\r\nHost: www.host.com\r\n\r\n”(HTTP / 1.1和大多数虚拟服务器都需要Host标头,不要忘记两个空行,换行也需要回车符HTTP标头)
  3. 等待回复
  4. 关闭套接字
  5. 如果要在连接结束时关闭套接字,您可能还需要发送Connection: close\r\n作为标头的一部分,以通知Web服务器您将在检索网页后终止连接

    如果您正在获取已编码或生成的网页,则可能会遇到麻烦,在这种情况下,您必须添加逻辑来解释所获取的数据。

答案 2 :(得分:3)

在Windows(Windows XP,带有SP3及更高版本的Windows 2000 Professional)上,您可以使用WinHttpReadData API。该页面底部还有一个例子。

MSDN

Windows HTTP服务的详细信息

答案 3 :(得分:0)

当我需要尽可能少的依赖项时,我已经使用了Winsock并且它运行良好。您需要编写比使用单独的库或Microsoft WinHTTP库更多的代码。

您需要的功能是WSAStartup,socket,connect,send,recv,closesocket和WSACleanup。
请参阅send函数的示例代码。

答案 4 :(得分:-2)

system("wget -q -O file.htm http://url.com");