diff --git a/src/http.cpp b/src/http.cpp
index 051143339a605953ce245426926b8a837cd2655b..f227f902cf07eefc5ea1b65605abbd7ff8d9aadd 100644
--- a/src/http.cpp
+++ b/src/http.cpp
@@ -637,6 +637,8 @@ Request::init_parser()
                 on_body_cb(at, length);
         };
         cbs_->on_message_complete = [this](){
+            if (logger_)
+                logger_->d("[http:client]  [request:%i] response: message complete", id_);
             message_complete_.store(true);
         };
     }
@@ -913,6 +915,11 @@ Request::handle_response_body(const asio::error_code& ec, const size_t bytes)
     if (logger_)
         logger_->d("[http:client]  [request:%i] response body: %i bytes received", id_, bytes);
 
+    if (bytes == 0){
+        terminate(asio::error::eof);
+        return;
+    }
+
     unsigned int content_length;
     auto content_length_it = response_.headers.find(HTTP_HEADER_CONTENT_LENGTH);