C++ Boost::ASIO HTTP POST中的正文为空

C++ Boost::ASIO HTTP POST中的正文为空,c++,http,boost,C++,Http,Boost,我尝试用下面的代码使用Post方法。在服务器端,主体总是空的 tcp::endpoint ip_port(address::from_string(host), port); socket.connect(ip_port); boost::asio::streambuf request; std::ostream request_stream(&request); request_stream << "POST /myservice HTTP/1.1\n\n"; requ

我尝试用下面的代码使用Post方法。在服务器端,主体总是空的

tcp::endpoint ip_port(address::from_string(host), port);
socket.connect(ip_port);

boost::asio::streambuf request;
std::ostream request_stream(&request);

request_stream << "POST /myservice HTTP/1.1\n\n";
request_stream << "Host:" << "host:port" << "\r\n";
request_stream << "User-Agent: C/1.0" << "\r\n";
request_stream << "Content-Type: application/json; charset=utf-8\r\n";
request_stream << "Accept: */*\r\n";
request_stream << "Content-Length: ";
request_stream << json.length() + "\r\n";
request_stream << "Connection: close\r\n\r\n"; 
request_stream << json;

boost::asio::write(socket, request);
tcp::端点ip\u端口(地址::来自字符串(主机),端口);
插座连接(ip_端口);
boost::asio::streambuf请求;
std::ostream请求\u流(&request);

最后,我找到了它。第一行中\n \n的问题。如果有两个\n,则请求在此结束。我尝试了下面的代码,并且能够在服务器端获得json主体

requestStream << "POST " << "/myservice" << " HTTP/1.1\r\n";
requestStream << "Host: " << "myhost" << "\r\n";
requestStream << "Accept: application/json\r\n";
requestStream << "Content-Type: application/json; charset=UTF-8\r\n";
requestStream << "Content-Length: " << json.length() << "\r\n";
requestStream << "\r\n";
requestStream << json << "\n\n";

requestStream可能添加了
request\u stream@Mankarse尝试了它,得到了同样的问题。