异步支持
HTTPX默认情况下提供标准的同步API,但是如果需要,还可以为你提供异步客户端的选项 。
要发出异步请求,你需要一个httpx.AsyncClient
1 2 3 4 5 6 7 8 9 10 11 12 | import asyncio import httpx async def main(): async with httpx.AsyncClient() as client: loop = asyncio.get_event_loop() try : loop.run_until_complete(main()) finally : loop.close() |
发出请求
1 2 3 4 5 6 7 8 9 | AsyncClient.get(url, ...) AsyncClient.options(url, ...) AsyncClient.head(url, ...) AsyncClient.post(url, ...) AsyncClient.put(url, ...) AsyncClient.patch(url, ...) AsyncClient.delete(url, ...) AsyncClient.request(url, ...) AsyncClient.send(url, ...) |
流式响应
1 2 3 4 5 | Response.aread() Response.aiter_bytes() Response.aiter_text() Response.aiter_lines() Response.aiter_raw() |
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 | import asyncio import httpx async def re(): async with httpx.AsyncClient() as client: print (res.text) return res.text loop = asyncio.get_event_loop() task = [re(), ] # 把任务放入数组,准备给事件循环器调用 loop.run_until_complete(asyncio.wait(task)) loop.close() |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。