]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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 | } |