update requests for DRY
This commit is contained in:
parent
2dca8c833c
commit
93a39ad889
|
|
@ -1,5 +1,36 @@
|
|||
from json import dumps
|
||||
from ssl import SSLContext, create_default_context
|
||||
from urllib.error import HTTPError
|
||||
from urllib.request import Request, urlopen
|
||||
from urllib.parse import urlencode
|
||||
|
||||
|
||||
def request(
|
||||
url: str,
|
||||
method: str,
|
||||
query_params: dict[str, str] | None = None,
|
||||
data: dict[str, str] | None = None,
|
||||
headers: dict[str, str] | None = None,
|
||||
) -> str:
|
||||
try:
|
||||
with urlopen(
|
||||
Request(
|
||||
url
|
||||
+ (
|
||||
("?" + "&".join(f"{k}={v}" for k, v in query_params.items()))
|
||||
if query_params
|
||||
else ""
|
||||
),
|
||||
dumps(data).encode() if data else None,
|
||||
headers=headers or {},
|
||||
method=method,
|
||||
),
|
||||
context=create_default_context(),
|
||||
) as resp:
|
||||
return resp.read().decode("utf-8")
|
||||
except HTTPError as e:
|
||||
e.add_note(e.url)
|
||||
raise
|
||||
|
||||
|
||||
def get(
|
||||
|
|
@ -7,20 +38,15 @@ def get(
|
|||
query_params: dict[str, str] | None = None,
|
||||
headers: dict[str, str] | None = None,
|
||||
) -> str:
|
||||
with urlopen(
|
||||
Request(
|
||||
url
|
||||
+ (
|
||||
("?" + "&".join(f"{k}={v}" for k, v in query_params.items()))
|
||||
if query_params
|
||||
else ""
|
||||
),
|
||||
headers=headers or {},
|
||||
method="GET",
|
||||
),
|
||||
context=create_default_context(),
|
||||
) as resp:
|
||||
return resp.read().decode("utf-8")
|
||||
return request(url, "GET", query_params=query_params, headers=headers)
|
||||
|
||||
|
||||
def post(
|
||||
url: str,
|
||||
data: dict[str, str] | None = None,
|
||||
headers: dict[str, str] | None = None,
|
||||
) -> str:
|
||||
return request(url, "POST", data=data, headers=headers)
|
||||
|
||||
|
||||
def put(
|
||||
|
|
@ -28,13 +54,11 @@ def put(
|
|||
data: dict[str, str] | None = None,
|
||||
headers: dict[str, str] | None = None,
|
||||
) -> str:
|
||||
with urlopen(
|
||||
Request(
|
||||
url,
|
||||
str(data).encode(),
|
||||
headers=headers or {},
|
||||
method="PUT",
|
||||
),
|
||||
context=create_default_context(),
|
||||
) as resp:
|
||||
return resp.read().decode("utf-8")
|
||||
return request(url, "PUT", data=data, headers=headers)
|
||||
|
||||
|
||||
def delete(
|
||||
url: str,
|
||||
headers: dict[str, str] | None = None,
|
||||
) -> str:
|
||||
return request(url, "DELETE", headers=headers)
|
||||
|
|
|
|||
Loading…
Reference in New Issue