Issue 33838: Very slow upload with http.client on Windows when setting timeout
Normally, when I upload files using the PUT request I get upload speed of about 100 Mb/s.
But as soon as I set the timeout, the speed drops to about 4 Mb/s (can vary depending on the server):
# Running on Windows 10, using Python 3.6.5
from io import BytesIO
import http.client
def upload(timeout=None):
test_file = BytesIO(b"0" * 15 * 1024**2)
if timeout is not None:
conn = http.client.HTTPConnection("httpbin.org", timeout=timeout)
else:
conn = http.client.HTTPConnection("httpbin.org")
conn.request("PUT", "/put", body=test_file)
conn.getresponse().read()
upload(25) # Painfully slow
upload() # Pretty fast
This problem seems to only affect Windows.