Add timeout in url open
This commit is contained in:
parent
35a0eecd79
commit
20fbd98157
|
@ -50,6 +50,7 @@ from enum import IntEnum
|
|||
from functools import wraps
|
||||
from pathlib import Path
|
||||
from pprint import pprint
|
||||
from socket import timeout
|
||||
from string import Template
|
||||
from typing import Any, Union
|
||||
from urllib.request import Request, urlopen
|
||||
|
@ -759,7 +760,7 @@ def get_size_screen():
|
|||
return res.strip()
|
||||
|
||||
|
||||
def url_open(url, data=None, headers={}, verify=True, get_json=False):
|
||||
def url_open(url, data=None, headers={}, verify=True, get_json=False, timeout=TIMEOUT):
|
||||
err = ''
|
||||
req = Request(url)
|
||||
for k, v in headers.items():
|
||||
|
@ -769,16 +770,19 @@ def url_open(url, data=None, headers={}, verify=True, get_json=False):
|
|||
if verify:
|
||||
if not data is None and isinstance(data, str):
|
||||
data = data.encode()
|
||||
response = urlopen(req, data=data)
|
||||
response = urlopen(req, data=data, timeout=timeout)
|
||||
else:
|
||||
context = ssl._create_unverified_context()
|
||||
response = urlopen(req, data=data, context=context)
|
||||
response = urlopen(req, data=data, timeout=timeout, context=context)
|
||||
except HTTPError as e:
|
||||
error(e)
|
||||
err = str(e)
|
||||
except URLError as e:
|
||||
error(e.reason)
|
||||
err = str(e.reason)
|
||||
except timeout:
|
||||
err = 'timeout'
|
||||
error(err)
|
||||
else:
|
||||
headers = dict(response.info())
|
||||
result = response.read().decode()
|
||||
|
|
Loading…
Reference in New Issue