# Python http request utils.
## Installation
You can install from [pypi](https://pypi.org/project/python-http_request/)
```console
pip install -U python-http_request
```
## Usage
```python
import http_request
import http_request.extension
```
## Extension
I've implemented several modules, all of which provide a ``request`` function. Their signatures are similar, so they can be used as drop-in replacements for each other.
1. [aiohttp_client_request](https://pypi.org/project/aiohttp_client_request/)
1. [aiosonic_request](https://pypi.org/project/aiosonic_request/)
1. [asks_request](https://pypi.org/project/asks_request/)
1. [blacksheep_client_request](https://pypi.org/project/blacksheep_client_request/)
1. [curl_cffi_request](https://pypi.org/project/curl_cffi_request/)
1. [http_client_request](https://pypi.org/project/http_client_request/)
1. [httpcore_request](https://pypi.org/project/httpcore_request/)
1. [httpx_request](https://pypi.org/project/httpx_request/)
1. [pycurl_request](https://pypi.org/project/pycurl_request/)
1. [python-urlopen](https://pypi.org/project/python-urlopen/)
1. [requests_request](https://pypi.org/project/requests_request/)
1. [tornado_client_request](https://pypi.org/project/tornado_client_request/)
1. [urllib3_request](https://pypi.org/project/urllib3_request/)
To make it more general, I've encapsulated a ``request`` function
```python
from http_request.extension import request
```
You just need to implement a ``urlopen`` function pass to ``request``, then it can be directly extended. The ``urlopen`` function signature is roughly as follows:
```python
def urlopen[Response](
url: str,
method: str,
data=None,
headers: None | dict[str, str] = None,
**request_args,
) -> Response:
...
```
Raw data
{
"_id": null,
"home_page": "https://github.com/ChenyangGao/python-modules/tree/main/python-http_request",
"name": "python-http_request",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.12",
"maintainer_email": null,
"keywords": "http, request",
"author": "ChenyangGao",
"author_email": "wosiwujm@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/df/1f/5f312a8f4d9bb2bcbb5307d79b805e2699a832a24632208eaeb15541c781/python_http_request-0.1.6.1.tar.gz",
"platform": null,
"description": "# Python http request utils.\n\n## Installation\n\nYou can install from [pypi](https://pypi.org/project/python-http_request/)\n\n```console\npip install -U python-http_request\n```\n\n## Usage\n\n```python\nimport http_request\nimport http_request.extension\n```\n\n## Extension\n\nI've implemented several modules, all of which provide a ``request`` function. Their signatures are similar, so they can be used as drop-in replacements for each other.\n\n1. [aiohttp_client_request](https://pypi.org/project/aiohttp_client_request/)\n1. [aiosonic_request](https://pypi.org/project/aiosonic_request/)\n1. [asks_request](https://pypi.org/project/asks_request/)\n1. [blacksheep_client_request](https://pypi.org/project/blacksheep_client_request/)\n1. [curl_cffi_request](https://pypi.org/project/curl_cffi_request/)\n1. [http_client_request](https://pypi.org/project/http_client_request/)\n1. [httpcore_request](https://pypi.org/project/httpcore_request/)\n1. [httpx_request](https://pypi.org/project/httpx_request/)\n1. [pycurl_request](https://pypi.org/project/pycurl_request/)\n1. [python-urlopen](https://pypi.org/project/python-urlopen/)\n1. [requests_request](https://pypi.org/project/requests_request/)\n1. [tornado_client_request](https://pypi.org/project/tornado_client_request/)\n1. [urllib3_request](https://pypi.org/project/urllib3_request/)\n\nTo make it more general, I've encapsulated a ``request`` function\n\n```python\nfrom http_request.extension import request\n```\n\nYou just need to implement a ``urlopen`` function pass to ``request``, then it can be directly extended. The ``urlopen`` function signature is roughly as follows:\n\n```python\ndef urlopen[Response](\n url: str, \n method: str, \n data=None, \n headers: None | dict[str, str] = None, \n **request_args, \n) -> Response:\n ...\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python http request utils.",
"version": "0.1.6.1",
"project_urls": {
"Homepage": "https://github.com/ChenyangGao/python-modules/tree/main/python-http_request",
"Repository": "https://github.com/ChenyangGao/python-modules/tree/main/python-http_request"
},
"split_keywords": [
"http",
" request"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3e3e55ab3c2ebbbf91891e6bea2d17e86a5c0e90908ab1f1759cfb1a6a9d9807",
"md5": "b854432982a9b51100cc195aa5b877cb",
"sha256": "cf190205f0c80e1445ccc3948f3719cde25760410d921f7d21f20834b1b336b0"
},
"downloads": -1,
"filename": "python_http_request-0.1.6.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b854432982a9b51100cc195aa5b877cb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.12",
"size": 11210,
"upload_time": "2025-08-24T17:42:47",
"upload_time_iso_8601": "2025-08-24T17:42:47.236639Z",
"url": "https://files.pythonhosted.org/packages/3e/3e/55ab3c2ebbbf91891e6bea2d17e86a5c0e90908ab1f1759cfb1a6a9d9807/python_http_request-0.1.6.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "df1f5f312a8f4d9bb2bcbb5307d79b805e2699a832a24632208eaeb15541c781",
"md5": "c00f67c1d20fea7e8718393cab65344d",
"sha256": "287e2d8f9340fadcfc7928f8a4afbbf7c2e266e83f79daa0224b3b7f1be24678"
},
"downloads": -1,
"filename": "python_http_request-0.1.6.1.tar.gz",
"has_sig": false,
"md5_digest": "c00f67c1d20fea7e8718393cab65344d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.12",
"size": 9096,
"upload_time": "2025-08-24T17:42:48",
"upload_time_iso_8601": "2025-08-24T17:42:48.994432Z",
"url": "https://files.pythonhosted.org/packages/df/1f/5f312a8f4d9bb2bcbb5307d79b805e2699a832a24632208eaeb15541c781/python_http_request-0.1.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-24 17:42:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ChenyangGao",
"github_project": "python-modules",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "python-http_request"
}