(
method: str,
url: str,
payload: dict[str, Any] | None = None,
timeout: float = 3.0,
)
| 74 | |
| 75 | |
| 76 | def http_json( |
| 77 | method: str, |
| 78 | url: str, |
| 79 | payload: dict[str, Any] | None = None, |
| 80 | timeout: float = 3.0, |
| 81 | ) -> dict[str, Any] | None: |
| 82 | data = None |
| 83 | headers = {} |
| 84 | if payload is not None: |
| 85 | data = json.dumps(payload).encode("utf-8") |
| 86 | headers["Content-Type"] = "application/json" |
| 87 | |
| 88 | request = urllib.request.Request(url, data=data, method=method, headers=headers) |
| 89 | try: |
| 90 | with urllib.request.urlopen(request, timeout=timeout) as response: |
| 91 | return json.loads(response.read().decode("utf-8")) |
| 92 | except (urllib.error.URLError, TimeoutError, json.JSONDecodeError): |
| 93 | return None |
| 94 | |
| 95 | |
| 96 | def ngrok_api_get(path: str) -> dict[str, Any] | None: |
no test coverage detected