Điều đơn giản nhất mà phù hợp với mô tả:
Live On Coliru
#include <boost/asio.hpp>
#include <iostream>
int main() {
boost::system::error_code ec;
using namespace boost::asio;
// what we need
io_service svc;
ip::tcp::socket sock(svc);
sock.connect({ {}, 8087 }); // http://localhost:8087 for testing
// send request
std::string request("GET /newGame?name=david HTTP/1.1\r\n\r\n");
sock.send(buffer(request));
// read response
std::string response;
do {
char buf[1024];
size_t bytes_transferred = sock.receive(buffer(buf), {}, ec);
if (!ec) response.append(buf, buf + bytes_transferred);
} while (!ec);
// print and exit
std::cout << "Response received: '" << response << "'\n";
}
này nhận được phản hồi đầy đủ. Bạn có thể thử nghiệm nó với một máy chủ giả:
(còn Live On Coliru):
netcat -l localhost 8087 <<< '"status":"okay", "id":"game-23", "letter":2'
này sẽ chỉ cho rằng yêu cầu được nhận, và phản ứng sẽ được viết ra bởi mã khách hàng của chúng tôi ở trên.
Lưu ý rằng cho thêm ý tưởng bạn có thể nhìn vào các ví dụ http://www.boost.org/doc/libs/release/doc/html/boost_asio/examples.html (mặc dù họ tập trung vào truyền thông không đồng bộ, bởi vì đó là chủ đề của thư viện Asio)
Lưu ý cho doanh nghiệp (máy chủ web chủ yếu tồn tại nghiêm trọng có thể làm bất cứ cách của chunked mã hóa, nén, giữ-sống, chuyển hướng phản ứng vv), bạn sẽ muốn sử dụng một thư viện như http://curl.haxx.se/libcurl/ – sehe