2 years ago

#7581

test-img

Jacob

HTTP GET request using C++ WinSock, Binance API

I'm trying first to connect with Binance api endpoint which is /api/v3/ping. However I'm getting "HTTP/1.1 400 Bad Request" response, what should be updated in this code?

    int main()
    {
        WSADATA wsa;
        SOCKET s;
        struct sockaddr_in server;
        char buffer[BUFFERSIZE];
        std::string request;
    
        std::cout<<("Initialising Winsock...\n");
        if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
        {
            std::cout<<("Failed. Error Code : %d", WSAGetLastError());
            return 1;
        }
    
        std::cout<<("Initialised.\n");
    
    
        if ((s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET)
        {
            std::cout << ("Could not create socket : %d", WSAGetLastError());
        }
    
        std::cout << ("Socket created.\n");
    
        const wchar_t* IP = _T("52.84.198.235");
        InetPton(AF_INET, IP, &server.sin_addr.s_addr);
        server.sin_family = AF_INET;
        server.sin_port = htons(443);

        if (connect(s, (struct sockaddr*)&server, sizeof(server)) < 0)
        {
            std::cout<<("connect error\n");
            return 1;
        }
    
        std::cout<<("Connected\n");
    
        request += "GET /api/v3/ping HTTP/1.1\r\nHost: api.binance.com\r\n\r\n";
    
        if (send(s, request.c_str(), strlen(request.c_str()), 0) < 0)
        {
            std::cout<<("Send failed\n");
            return 1;
        }
        std::cout << ("Data Send\n");
    
        std::string response;
        int resp_leng;

        response = "";
        resp_leng = BUFFERSIZE;
        while (resp_leng)
        {
            resp_leng = recv(s, (char*)&buffer, BUFFERSIZE, 0);
            if (resp_leng > 0)
                response += std::string(buffer).substr(0, resp_leng);
        }
   
        std::cout << response << "\n";
    
        closesocket(s);
        WSACleanup();
    
        return 0;
    }

I was using info from a few sites and stackoverflow questions, I'm wondering if it can be about SSL?

c++

rest

winsock2

0 Answers

Your Answer

Accepted video resources