The Batch HTTP Request is a Python package designed to handle multiple HTTP requests efficiently. It allows users to send a batch of requests and receive the corresponding responses in a structured format. The library also provides error handling capabilities, returning errors alongside successful responses if desired.
- Send multiple HTTP requests in a single batch.
- Supports various HTTP methods (GET, POST, etc.).
- Handles headers and request bodies.
- Optionally returns errors encountered during request processing.
To install the library, you can use pip:
pip install batch-http-request
The Request
class is used to define individual HTTP requests.
-
Attributes:
url
(str): The URL for the request.method
(str): The HTTP method (e.g., "GET", "POST").headers
(List[Tuple[str, str]]): Optional list of headers.body
(Optional[bytes]): Optional request body.
-
Constructor:
Request(url: str, method: str, headers: Optional[List[Tuple[str, str]]] = [], body: Optional[bytes] = None)
The Response
class represents the HTTP response.
-
Attributes:
status_code
(int): The HTTP status code.headers
(List[Tuple[str, str]]): List of response headers.body
(bytes): Response body.
-
Constructor:
Response(status_code: int, headers: List[Tuple[str, str]], body: bytes)
The batch_request
function processes a list of Request
objects and returns their corresponding Response
objects or errors.
-
Parameters:
requests
(List[Request]): A list ofRequest
objects to be processed.return_panic
(bool): If set toTrue
, the function returns errors encountered during the request processing asRuntimeError
objects. Defaults toFalse
.
-
Returns:
- List[Union[Response, RuntimeError]]: A list containing
Response
objects for successful requests andRuntimeError
objects for failed requests ifreturn_panic
isTrue
.
- List[Union[Response, RuntimeError]]: A list containing
-
Example:
from batch_http_request import Request, batch_request requests = [ Request(url="https://api.example.com/data", method="GET"), Request(url="https://api.example.com/submit", method="POST", body=b'{"key": "value"}') ] responses = batch_request(requests, return_panic=True) for response in responses: if isinstance(response, Response): print(f"Status: {response.status_code}, Body: {response.body}") else: print(f"Error: {response}")
Contributions are welcome! Please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for more details.
For any questions or issues, please open an issue on the GitHub repository or contact the maintainers directly.