我可以用这种方式发送标题和正文,
std::string complete_response = "HTTP/1.1 200 OKrnContent-Length: 13rnConnection: closernrnHello, world!";
socket.send(complete_response);
但当涉及到在不同阶段发送它们时,我就不知所措了。我尝试了以下操作,但似乎根本不起作用,
std::string header = "HTTP/1.1 200 OKrnContent-Length: 13rnConnection: closernrn";
std:string body = "Hello, world!";
socket.send(header);
socket.send(body);
使用Wireshark,我看到浏览器得到了头部,然后浏览器关闭了连接,而不是等待正文。
这种行为在JS中非常常见。您可以使用下面的示例从Chrome的控制台或Node REPL接口进行调用。
async function postData(url = '') {
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Length': 'application/json'
},
body: JSON.stringify( <BODY DATA>)})
});
return response.json();
}
postData('<URL>')
.then(res => {
console.log(res);
});