kopia lustrzana https://github.com/micropython/micropython-lib
urequests: Add support for requests with chunked upload data.
rodzic
be327a7bc7
commit
b17e9aaf93
|
@ -36,6 +36,8 @@ class Response:
|
||||||
def request(
|
def request(
|
||||||
method, url, data=None, json=None, headers={}, stream=None, parse_headers=True, auth=None
|
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:
|
if auth is not None:
|
||||||
import ubinascii
|
import ubinascii
|
||||||
|
|
||||||
|
@ -90,10 +92,20 @@ def request(
|
||||||
data = ujson.dumps(json)
|
data = ujson.dumps(json)
|
||||||
s.write(b"Content-Type: application/json\r\n")
|
s.write(b"Content-Type: application/json\r\n")
|
||||||
if data:
|
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")
|
s.write(b"Connection: close\r\n\r\n")
|
||||||
if data:
|
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()
|
l = s.readline()
|
||||||
# print(l)
|
# print(l)
|
||||||
|
|
Ładowanie…
Reference in New Issue