我正在尋找一個實現或啓用HTTP客戶端實現的c/C++庫。它也應該支持http1.1和ssl。 你會建議什麼?什麼是BSD許可證c/C++庫可以用來實現http客戶端支持http1.1和ssl
預先感謝您的時間。
我正在尋找一個實現或啓用HTTP客戶端實現的c/C++庫。它也應該支持http1.1和ssl。 你會建議什麼?什麼是BSD許可證c/C++庫可以用來實現http客戶端支持http1.1和ssl
預先感謝您的時間。
libcurl
支持HTTP1.1,TLS和似乎是下類似於BSD許可證:
All rights reserved.
.
Permission to use, copy, modify, and distribute this software for any purpose
with or without fee is hereby granted, provided that the above copyright
notice and this permission notice appear in all copies.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.
.
Except as contained in this notice, the name of a copyright holder shall not
be used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization of the copyright holder.
野獸支持HTTP/1.0和HTTP/1.1,並將其與Boost.Asio的常規插座或工作SSL流。它是Boost的一部分,有大量文檔,並且構建在gcc,clang和Visual Studio上! https://github.com/boostorg/beast/
下面是一個完整的示例程序: 使用HTTP從網站請求根頁面和打印響應:
#include <beast/http.hpp>
#include <boost/asio.hpp>
#include <iostream>
#include <string>
int main()
{
// Normal boost::asio setup
std::string const host = "boost.org";
boost::asio::io_service ios;
boost::asio::ip::tcp::resolver r(ios);
boost::asio::ip::tcp::socket sock(ios);
boost::asio::connect(sock,
r.resolve(boost::asio::ip::tcp::resolver::query{host, "http"}));
// Send HTTP request using beast
beast::http::request_v1<beast::http::empty_body> req;
req.method = "GET";
req.url = "/";
req.version = 11;
req.headers.replace("Host", host + ":" + std::to_string(sock.remote_endpoint().port()));
req.headers.replace("User-Agent", "Beast");
beast::http::prepare(req);
beast::http::write(sock, req);
// Receive and print HTTP response using beast
beast::streambuf sb;
beast::http::response_v1<beast::http::streambuf_body> resp;
beast::http::read(sock, sb, resp);
std::cout << resp;
}
的libcurl會做,我猜。同時搜索SO將有所幫助。 – 2012-07-18 23:40:37