urequests: Add support for requests with chunked upload data.

pull/502/head
Diefesson de Sousa SIlva 2022-06-19 09:58:14 +10:00 zatwierdzone przez Damien George
rodzic be327a7bc7
commit b17e9aaf93
1 zmienionych plików z 14 dodań i 2 usunięć

Wyświetl plik

@ -36,6 +36,8 @@ class Response:
def request(
method, url, data=None, json=None, headers={}, stream=None, parse_headers=True, auth=None
):
chunked_data = data and getattr(data, "__iter__", None) and not getattr(data, "__len__", None)
if auth is not None:
import ubinascii
@ -90,10 +92,20 @@ def request(
data = ujson.dumps(json)
s.write(b"Content-Type: application/json\r\n")
if data:
s.write(b"Content-Length: %d\r\n" % len(data))
if chunked_data:
s.write(b"Transfer-Encoding: chunked\r\n")
else:
s.write(b"Content-Length: %d\r\n" % len(data))
s.write(b"Connection: close\r\n\r\n")
if data:
s.write(data)
if chunked_data:
for chunk in data:
s.write(b"%x\r\n" % len(chunk))
s.write(chunk)
s.write(b"\r\n")
s.write("0\r\n\r\n")
else:
s.write(data)
l = s.readline()
# print(l)