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 functools import wraps
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
from socket import timeout
|
||||||
from string import Template
|
from string import Template
|
||||||
from typing import Any, Union
|
from typing import Any, Union
|
||||||
from urllib.request import Request, urlopen
|
from urllib.request import Request, urlopen
|
||||||
|
@ -759,7 +760,7 @@ def get_size_screen():
|
||||||
return res.strip()
|
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 = ''
|
err = ''
|
||||||
req = Request(url)
|
req = Request(url)
|
||||||
for k, v in headers.items():
|
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 verify:
|
||||||
if not data is None and isinstance(data, str):
|
if not data is None and isinstance(data, str):
|
||||||
data = data.encode()
|
data = data.encode()
|
||||||
response = urlopen(req, data=data)
|
response = urlopen(req, data=data, timeout=timeout)
|
||||||
else:
|
else:
|
||||||
context = ssl._create_unverified_context()
|
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:
|
except HTTPError as e:
|
||||||
error(e)
|
error(e)
|
||||||
err = str(e)
|
err = str(e)
|
||||||
except URLError as e:
|
except URLError as e:
|
||||||
error(e.reason)
|
error(e.reason)
|
||||||
err = str(e.reason)
|
err = str(e.reason)
|
||||||
|
except timeout:
|
||||||
|
err = 'timeout'
|
||||||
|
error(err)
|
||||||
else:
|
else:
|
||||||
headers = dict(response.info())
|
headers = dict(response.info())
|
||||||
result = response.read().decode()
|
result = response.read().decode()
|
||||||
|
|
Loading…
Reference in New Issue