翼度科技»论坛 编程开发 python 查看内容

python中的httpx异步请求

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
异步支持

HTTPX默认情况下提供标准的同步API,但是如果需要,还可以为你提供异步客户端的选项 。
要发出异步请求,你需要一个httpx.AsyncClient
  1. import asyncio
  2. import httpx

  3. async def main():
  4.     async with httpx.AsyncClient() as client:
  5.         response = await client.get('https://example.org/')

  6. loop = asyncio.get_event_loop()
  7. try:
  8.     loop.run_until_complete(main())
  9. finally:
  10.     loop.close()
复制代码
发出请求
  1. AsyncClient.get(url, ...)
  2. AsyncClient.options(url, ...)
  3. AsyncClient.head(url, ...)
  4. AsyncClient.post(url, ...)
  5. AsyncClient.put(url, ...)
  6. AsyncClient.patch(url, ...)
  7. AsyncClient.delete(url, ...)
  8. AsyncClient.request(url, ...)
  9. AsyncClient.send(url, ...)
复制代码
流式响应
  1. Response.aread()
  2. Response.aiter_bytes()
  3. Response.aiter_text()
  4. Response.aiter_lines()
  5. Response.aiter_raw()
复制代码
实例
  1. import asyncio
  2. import httpx

  3. async def re():
  4.     async with httpx.AsyncClient() as client:
  5.         res = await client.get('https://www.baidu.com')
  6.         print(res.text)
  7.         return res.text

  8. loop = asyncio.get_event_loop()
  9. task = [re(), ] # 把任务放入数组,准备给事件循环器调用
  10. loop.run_until_complete(asyncio.wait(task))
  11. loop.close()
复制代码
总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/python/323490jd0.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具