当前位置: 首页 > 网络应用技术

httpx的详细使用

时间:2023-03-05 22:54:46 网络应用技术

  HTTPX是新一代网络请求库。它具有以下特征:

  基于Python3的HTTP请求模块;

  它可以发送同步请求,但也会发送异步请求;

  支持HTTP1.1和HTTP2;

  可以将请求直接发送到WSGI,ASGI等应用程序。

  HTTPX需要使用Python3.6+,并且异步请求需要为Python3.8+。

  要使用HTTP/2,您需要安装HTTP2的相关依赖项。

  结果:

  结果:

  您也可以通过响应消息来访问状态代码

  结果:

  结果:

  结果:

  结果:

  结果:

  结果:

  该集合的超时报告错误,httpx.ReadTimeout:计时

  结果:

  结果:

  结果:

  在基本用法中,HTTPX的每个请求都必须建立新连接。当请求的数量很大时,效率将变得较差,也会导致浪费资源。

  HTTPX提供客户端以解决此问题,该问题是根据HTTP连接池实现的。如果您在同一网站上发送多个请求,则客户端将继续维护原始的TCP连接以提高效率。

  结果:

  您可以在httpx.client()中放置标题,cookie,params和其他参数之类的参数,并在客户端下的请求中共享这些配置参数

  结果:

  可以看出,R1的请求头包含来自客户的启用,R2的请求标题不仅包含标头2的内容,还包含Headers1的内容。最终请求头等效于Headers1和Headers2作为最终请求标题。

  HTTPX可以通过代理参数使用HTTTP代理。它还可以使用不同的代理分别处理HTTP和HTTPS协议的请求

  HTTPX的代理参数代理只能添加到httpx.client(),并且不能添加到client.get()

  在默认情况下,httpx已进行了严格的超时,并且在5秒内无响应的超时

  普通请求:

  客户端实例:

  普通请求:

  客户端实例:

  当请求HTTPS协议的链接时,发出的请求需要由主机身份认证,因此SSL证书需要认证。如果您想自定义CA证书,则可以使用验证参数

  或禁用SSL认证

  默认情况下,HTTPX使用标准同步请求方法。如果要使用异步请求,您也可以使用提供的异步客户端来处理异步请求

  使用异步客户端的使用比使用多线程发送请求更有效,该请求可以更好地反映明显的性能优势,并且还支持诸如WebSocket之类的长连接

  使用异步/等待执行异步请求的相关处理

  结果:

  结果:

  结果:

  由于执行异步,印刷我是无序的