What C++ library should I use to implement a HTTP

2019-01-16 09:05发布

问题:

I'm looking for a C++ library that implements or enables the implementation of a HTTP client. It should handle cookies as well.

What would you propose?

回答1:

Curl++: is an option, particularly if you want things in more of a C++ style.

cpp-netlib: very good and simple to use, available on ubuntu

sudo apt-get install libcppnetlib-dev

example:

using namespace boost::network;
using namespace boost::network::http;

client::request request_("http://127.0.0.1:8000/");
request_ << header("Connection", "close");
client client_;
client::response response_ = client_.get(request_);
std::string body_ = body(response_);


回答2:

Take a look at Poco Libraries.

I started using them as they are portable and it's a joy to work with. Simple and clean - though I haven't dived in anything fancy for the moment.



回答3:

  • curl
  • libwww


回答4:

C++ (STL) does not have a HTTP or network library by default, you will have to do with something else.

libcurl should do what you want. cURL++ is the same libcurl wrapped in a shiny C++ wrapper.



回答5:

You can try WinInet

http://msdn.microsoft.com/en-us/library/aa385331(VS.85).aspx

In contrast to WinHTTP, it's more client-side oriented.



回答6:

If it's for windows, take a look at Windows HTTP Services (WinHTTP)

http://msdn.microsoft.com/en-us/library/aa384273(VS.85).aspx

Microsoft Windows HTTP Services (WinHTTP) provides developers with an HTTP client application programming interface (API) to send requests through the HTTP protocol to other HTTP servers.

WinHTTP offers both a C/C++ application programming interface (API) and a Component Object Model (COM) automation component suitable for use in Active Server Pages (ASP) based applications.

For Cookies http://msdn.microsoft.com/en-us/library/aa383261(VS.85).aspx



回答7:

All alternative library are available here, if you need complex http APIs, try curl, if just wanna get a file, try http-tiny

http://curl.haxx.se/libcurl/competitors.html



回答8:

On Windows you can drive IE using IWebBrowser2 interface.



标签: c++ http client