From 11a40584e992bcf6a66bffce96bf75a78bf528c5 Mon Sep 17 00:00:00 2001 From: yhirose Date: Tue, 3 Dec 2024 00:38:20 -0500 Subject: [PATCH] Fix #1998 --- httplib.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/httplib.h b/httplib.h index f7e54d2..9612f2c 100644 --- a/httplib.h +++ b/httplib.h @@ -7964,7 +7964,9 @@ inline bool ClientImpl::process_request(Stream &strm, Request &req, // Body if ((res.status != StatusCode::NoContent_204) && req.method != "HEAD" && req.method != "CONNECT") { - auto redirect = 300 < res.status && res.status < 400 && follow_location_; + auto redirect = 300 < res.status && res.status < 400 && + res.status != StatusCode::NotModified_304 && + follow_location_; if (req.response_handler && !redirect) { if (!req.response_handler(res)) { @@ -8008,12 +8010,14 @@ inline bool ClientImpl::process_request(Stream &strm, Request &req, } } - int dummy_status; - if (!detail::read_content(strm, res, (std::numeric_limits::max)(), - dummy_status, std::move(progress), std::move(out), - decompress_)) { - if (error != Error::Canceled) { error = Error::Read; } - return false; + if (res.status != StatusCode::NotModified_304) { + int dummy_status; + if (!detail::read_content(strm, res, (std::numeric_limits::max)(), + dummy_status, std::move(progress), + std::move(out), decompress_)) { + if (error != Error::Canceled) { error = Error::Read; } + return false; + } } }