]> git.proxmox.com Git - ceph.git/blob - ceph/src/Beast/examples/http_example.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / Beast / examples / http_example.cpp
1 //
2 // Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7
8 #include <beast/http.hpp>
9 #include <boost/asio.hpp>
10 #include <boost/lexical_cast.hpp>
11 #include <iostream>
12 #include <string>
13
14 int main()
15 {
16 // Normal boost::asio setup
17 std::string const host = "boost.org";
18 boost::asio::io_service ios;
19 boost::asio::ip::tcp::resolver r{ios};
20 boost::asio::ip::tcp::socket sock{ios};
21 boost::asio::connect(sock,
22 r.resolve(boost::asio::ip::tcp::resolver::query{host, "http"}));
23
24 // Send HTTP request using beast
25 beast::http::request<beast::http::string_body> req;
26 req.method = "GET";
27 req.url = "/";
28 req.version = 11;
29 req.fields.replace("Host", host + ":" +
30 boost::lexical_cast<std::string>(sock.remote_endpoint().port()));
31 req.fields.replace("User-Agent", "Beast");
32 beast::http::prepare(req);
33 beast::http::write(sock, req);
34
35 // Receive and print HTTP response using beast
36 beast::streambuf sb;
37 beast::http::response<beast::http::streambuf_body> resp;
38 beast::http::read(sock, sb, resp);
39 std::cout << resp;
40 }