diff --git a/httplib.h b/httplib.h index 250d4ca..0e88d8b 100644 --- a/httplib.h +++ b/httplib.h @@ -2066,19 +2066,22 @@ inline void Client::write_request(Stream& strm, Request& req) path.c_str()); // Headers - if (is_ssl()) { - if (port_ == 443) { - req.set_header("Host", host_.c_str()); - } else { - req.set_header("Host", host_and_port_.c_str()); - } - } else { - if (port_ == 80) { - req.set_header("Host", host_.c_str()); - } else { - req.set_header("Host", host_and_port_.c_str()); - } - } + if (!req.has_header("Host")) + { + if (is_ssl()) { + if (port_ == 443) { + req.set_header("Host", host_.c_str()); + } else { + req.set_header("Host", host_and_port_.c_str()); + } + } else { + if (port_ == 80) { + req.set_header("Host", host_.c_str()); + } else { + req.set_header("Host", host_and_port_.c_str()); + } + } + } if (!req.has_header("Accept")) { req.set_header("Accept", "*/*");