Hi I want to connect to internal http services with django and I need to buffer the output the http response of those services because some contents are very large.
I am using python 3.6, django 2.0, `http.client` and the following code: class HTTPStreamIterAndClose(): def __init__(self, conn, res, buffsize): self.conn = conn self.res = res self.buffsize = buffsize self.length = 1 bytes_length = int(res.getheader('Content-Length')) if buffsize < bytes_length: self.length = math.ceil(bytes_length/buffsize) def __iter__(self): return self def __next__(self): buff = self.res.read(self.buffsize) if buff is b'': self.res.close() self.conn.close() raise StopIteration else: return buff def __len__(self): return self.length def passthru_http_service(request, server, timeout, path): serv = HTTPService(server, timeout) res = serv.request(path) response = StreamingHttpResponse( HTTPStreamIterAndClose(serv.connection, res, 200), content_type='application/json' ) response['Content-Length'] = res.getheader('Content-Length') return response And the reponse is empty, I test the iterator with: b''.join(HTTPStreamIterAndClose(serv.connection, res, 200) And everything works fine, I don't know why is not working in the Django response. Cheers -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/d139c1ea-3b99-4752-b306-0188d638e1a6%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.