From fa019441b54782fe08cd91454e4569b5cf6618ba Mon Sep 17 00:00:00 2001 From: Alexandre Devienne Date: Thu, 1 Dec 2022 22:44:39 +0100 Subject: [PATCH] Add support for response without Content-Length --- adafruit_requests.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/adafruit_requests.py b/adafruit_requests.py index 73993ba..11a325d 100644 --- a/adafruit_requests.py +++ b/adafruit_requests.py @@ -288,17 +288,24 @@ def _readinto(self, buf: bytearray) -> int: self._parse_headers() return 0 self._remaining = http_chunk_size + elif self._remaining is None: + # the Content-Length is not provided in the HTTP header + # so try parsing as long as their is data in the socket + pass else: return 0 nbytes = len(buf) - if nbytes > self._remaining: - nbytes = self._remaining + if self._remaining and nbytes > self._remaining: + # if Content-Length was provided and remaining bytes larges than buffer + nbytes = self._remaining # adjust read amount read = self._read_from_buffer(buf, nbytes) if read == 0: read = self._recv_into(buf, nbytes) - self._remaining -= read + if self._remaining: + # if Content-Length was provided, adjust the remaining amount to still read + self._remaining -= read return read