AsyncClient¶
The asynchronous HTTP client for use with asyncio.
AsyncClient ¶
An asynchronous HTTP client for use with asyncio.
AsyncClient wraps the synchronous Client using asyncio.run_in_executor(), providing an async interface while leveraging the Rust implementation's performance.
Example
Basic usage:
import asyncio
import httpr
async def main():
async with httpr.AsyncClient() as client:
response = await client.get("https://httpbin.org/get")
print(response.json())
asyncio.run(main())
Concurrent requests:
Note
AsyncClient runs synchronous Rust code in a thread executor. It provides concurrency benefits for I/O-bound tasks but is not native async I/O.
Initialize an async HTTP client.
Accepts the same parameters as Client.
request
async
¶
Make an async HTTP request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
method
|
HttpMethod
|
HTTP method. |
required |
url
|
str
|
Request URL. |
required |
**kwargs
|
Unpack[RequestParams]
|
Request parameters. |
{}
|
Returns:
| Type | Description |
|---|---|
Response
|
Response object. |
get
async
¶
head
async
¶
Make an async HEAD request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Request URL. |
required |
**kwargs
|
Unpack[RequestParams]
|
Request parameters. |
{}
|
Returns:
| Type | Description |
|---|---|
Response
|
Response object. |
options
async
¶
Make an async OPTIONS request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Request URL. |
required |
**kwargs
|
Unpack[RequestParams]
|
Request parameters. |
{}
|
Returns:
| Type | Description |
|---|---|
Response
|
Response object. |
delete
async
¶
Make an async DELETE request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Request URL. |
required |
**kwargs
|
Unpack[RequestParams]
|
Request parameters. |
{}
|
Returns:
| Type | Description |
|---|---|
Response
|
Response object. |
post
async
¶
Make an async POST request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Request URL. |
required |
**kwargs
|
Unpack[RequestParams]
|
Request parameters including body options. |
{}
|
Returns:
| Type | Description |
|---|---|
Response
|
Response object. |
put
async
¶
Make an async PUT request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Request URL. |
required |
**kwargs
|
Unpack[RequestParams]
|
Request parameters including body options. |
{}
|
Returns:
| Type | Description |
|---|---|
Response
|
Response object. |
patch
async
¶
Make an async PATCH request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Request URL. |
required |
**kwargs
|
Unpack[RequestParams]
|
Request parameters including body options. |
{}
|
Returns:
| Type | Description |
|---|---|
Response
|
Response object. |
stream
async
¶
stream(method: HttpMethod, url: str, **kwargs: Unpack[RequestParams]) -> AsyncIterator[StreamingResponse]
Make an async streaming HTTP request.
Returns an async context manager that yields a StreamingResponse for iterating over the response body in chunks.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
method
|
HttpMethod
|
HTTP method. |
required |
url
|
str
|
Request URL. |
required |
**kwargs
|
Unpack[RequestParams]
|
Request parameters. |
{}
|
Yields:
| Name | Type | Description |
|---|---|---|
StreamingResponse |
AsyncIterator[StreamingResponse]
|
A response object that can be iterated. |
Example
Note
Iteration over the response is synchronous (uses iter_bytes, iter_text, iter_lines). The async part is initiating the request and entering the context manager.