Uplink-Httpx is an asynchronous HTTP client based on HTTPX for the awesome Uplink REST library.
Use it like any other HTTP client for uplink.
import asyncio
import uplink
from uplink_httpx import HttpxClient
@uplink.headers({"Accept": "application/json"})
@uplink.returns.json()
class HttpBin(uplink.Consumer):
@uplink.get("get")
def get(self):
pass
async def demo():
httpbin = HttpBin(base_url="https://httpbin.org", client=HttpxClient())
resp = await httpbin.get()
print(resp)
# {'args': {}, 'headers': {'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-httpx/0.9.5'}, ... 'url': 'https://httpbin.org/get'}
loop = asyncio.get_event_loop()
loop.run_until_complete(demo())
HTTPX builds on the well-established usability of requests
, and gives you:
- A requests-compatible API wherever possible. No issues between async and sync clients anymore.
- HTTP/2 and HTTP/1.1 support.
- Strict timeouts everywhere.