我是一名新手。
我正在测试boost异步客户端。参考代码如下。
如果"Connection: close"
标头值存在,代码就完成了。但是,当我在HTTP请求中省略"handle_read_status_line"
标头时,从未调用"Conneciton: close"
处理程序。
(只有在TCP连接关闭时才会调用所有接收HTTP响应的处理程序。)
在我看来,应该调用"handle_read_status_line"
,因为无论"\\r\\n"
标头如何,HTTP响应始终都包含"Connection"
。
当调用async_read_until
的处理程序时,有人可以向我解释一下吗?
提前致谢。
答案 0 :(得分:0)
通常,async_read_until
会在符合MatchCondition
时返回。
该示例假定连接是按请求进行的。它非常明确:
// Start reading remaining data until EOF.
boost::asio::async_read(socket_, response_,
boost::asio::transfer_at_least(1),
boost::bind(&client::handle_read_content, this,
boost::asio::placeholders::error));