Spaces:
Sleeping
Sleeping
| from typing import Any | |
| from typing import Dict | |
| from typing import List | |
| from typing import Tuple | |
| import parameters | |
| import requests | |
| def send_post_request(url: str, payload: dict) -> Tuple[Dict[str, Any], int]: | |
| """ | |
| Sends a POST request to the given URL with the provided payload. | |
| Args: | |
| url (str): The target URL. | |
| payload (dict): The JSON payload to send. | |
| Returns: | |
| Tuple[Dict[str, Any], int]: The JSON response and status code from the request. | |
| """ | |
| response = requests.post(url, json=payload) | |
| return response.json(), response.status_code | |
| def get_valid_post_response(url: str, payload: dict) -> Dict[str, Any]: | |
| """ | |
| Assures a response by wrapping up the request sending utility in a for loop with maximum retries. | |
| Args: | |
| url (str): The target URL. | |
| payload (dict): The JSON payload to send. | |
| Returns: | |
| Dict[str, Any]: The JSON response from the request. | |
| """ | |
| for _ in range(int(parameters.MAX_TRIES)): | |
| try: | |
| response, status_code = send_post_request(url, payload) | |
| if status_code != 200: | |
| continue | |
| return response | |
| except: | |
| continue | |
| print( | |
| f"Max retries exceeded with POST request for url: {url} with payload:\n{payload}\n" | |
| ) | |
| return { | |
| "error": f"Max retries exceeded with POST request for url: {url} with payload:\n{payload}\n" | |
| } |