C++ 使用Boost Asio C++;

C++ 使用Boost Asio C++;,c++,boost,C++,Boost,使用Boost Asio C++;

使用Boost Asio C++; <我是C++和Boost Asio的新手,我想用Boost Asio创建一个简单的HTTP GET请求到我的程序中有OATN2(承载令牌)的网站,但是它不起作用,我不知道为什么,我尝试在克利永中进行LIPCURL和分开HTTP请求,并且它们工作得很好,没有任何问题。
#include "netCommon/net_Common.h"

#include <chrono>
#include <thread>
using namespace boost;
typedef asio::ip::tcp ip;



int main() {
    boost::system::error_code ec;
    asio::io_service ios;
    //The website
    std::string host_name = "api-fxpractice.oanda.com";
    std::string port = "443";
    //resolve DNS
    ip::resolver resolver_dns(ios);

    ip::resolver::query query_dns(host_name,port,asio::ip::tcp::resolver::numeric_service);

    ip::resolver::iterator it = resolver_dns.resolve(query_dns,ec);
    //Create a socket
    ip::socket sock(ios);
    //Connect to endpoint
    asio::connect(sock,it);
    if (ec){
        std::cout << " Failed to connect: " << ec.message() << std::endl;
        return ec.value();
    }
    std::cout << "Connected successfully !!! " << std::endl;
    if (sock.is_open()) {
        //Create a stream buffer
        std::stringstream request_stream;
        request_stream << "GET https://api-fxpractice.oanda.com/v3/accounts HTTP/1.1\r\n"
                                              "Authorization: Bearer <my token>\r\n"
                                              "Connection: close\r\n\r\n";
        //Tried to change to Host: https://api-fxpractice.oanda.com, doesn't work either
        const auto request = request_stream.str();
        asio::write(sock, asio::buffer(request));
        using namespace std::chrono_literals;
        std::this_thread::sleep_for(2000ms);
        size_t bytes = sock.available();
        if (bytes > 0) {
            std::vector<char> vBuffer(bytes);
            std::cout << "Have something to read !" << std::endl;
            asio::read(sock, asio::buffer(vBuffer));
            for (auto c: vBuffer) {
                std::cout << c;
            }
        }
    }
#包括“netCommon/net_Common.h”
#包括
#包括
使用名称空间boost;
类型定义asio::ip::tcp ip;
int main(){
boost::system::error_code ec;
asio::io_服务ios;
//网站
std::string host_name=“api fxpractice.oanda.com”;
std::string port=“443”;
//解析DNS
解析程序解析程序(ios);
ip::resolver::query\u dns(主机名、端口、asio::ip::tcp::resolver::数字\u服务);
ip::resolver::iterator it=resolver\u dns.resolve(查询\u dns,ec);
//创建一个套接字
ip::套接字sock(ios);
//连接到端点
asio::连接(sock,it);
国际单项体育联合会(欧共体){

std::我想你应该使用Boost beast如果你坚持不使用beast,我会帮助你纠正这个代码如果你收到400个错误请求,HTTP本身就可以工作。我想你应该使用SSL而不是普通的HTTP。看看
Boost::asio::SSL::stream