Avatar ·

Comment faire une requête HTTP en C++ ?

Bonjour à tous ! Dites-moi, s'il vous plaît, comment faire correctement une requête HTTP (GET/POST) en C++ pur sans utiliser de bibliothèques tierces comme Boost.Beast ou cURL ? J'écris un petit client console pour travailler avec une API REST, mais je ne trouve pas d'outils intégrés pour travailler avec HTTP.

J'ai essayé d'utiliser winsock2 sur Windows et sys/socket.h sur Linux, mais j'ai rencontré des problèmes : premièrement, lors de l'envoi d'une requête GET, le serveur renvoie une erreur 400 Bad Request, deuxièmement, je n'arrive pas à traiter correctement le chunked transfer encoding dans la réponse. Voici un exemple de mon code :

#ifdef _WIN32\n#include <winsock2.h>\n#pragma comment(lib, "ws2_32.lib")\n#else\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <arpa/inet.h>\n#endif\n\n#include <iostream>\n#include <string>\n\nint main() {\n    // ... création du socket et connexion à example.com:80 ...\n    std::string request = "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n";\n    se