diff --git a/src/http.cpp b/src/http.cpp
index 5970fe030dc26de855b740513c8a1665f968154e..b7f3373e5f4a39a155205ff31079793459a02bc7 100644
--- a/src/http.cpp
+++ b/src/http.cpp
@@ -629,6 +629,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);
         };
     }
@@ -896,6 +898,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);