Avatar ·

如何在C++中发送HTTP请求?

大家好!请教一下,如何在纯C++中正确发送HTTP请求(GET/POST),而不使用像Boost.Beast或cURL这样的第三方库?我正在编写一个用于与REST API交互的小型控制台客户端,但找不到内置的HTTP处理工具。

我尝试在Windows上使用winsock2,在Linux上使用sys/socket.h,但遇到了问题:首先,发送GET请求时服务器返回400 Bad Request错误;其次,无法正确处理响应中的chunked transfer encoding。以下是我的代码示例:

#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    // ... 创建socket并连接到example.com:80 ...\n    std::string request = "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n";\n    se