diff --git a/libavformat/http.c b/libavformat/http.c
index ffdf11cf7efd3f852ea472d7fb0711651946132b..7a68378acb25f082849bd183da542dafeea3aef0 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -327,6 +327,9 @@ int ff_http_do_new_request(URLContext *h, const char *uri)
     if (ret < 0)
         return ret;
 
+    if (s->willclose)
+        return AVERROR_EOF;
+
     s->end_chunked_post = 0;
     s->chunkend      = 0;
     s->off           = 0;