记录python httpx库的基本使用

本文档详述了Python的HTTPX库的基础用法,包括发起HTTP请求、设置请求头、处理响应等内容,适用于后端开发及爬虫场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

详细注释记录在代码中。。。

# 文档地址https://www.python-httpx.org/
import httpx  # pip install httpx # pip install httpx[http2]
import asyncio
import time

# headers = {'user-agent': 'my-app/1.0.0'}
# params = {'key1': 'value1', 'key2': 'value2'}
# cookies = {'color': 'green'}
# url = 'https://httpbin.org/get'
# r = httpx.get(url, headers=headers, params=params, cookies=cookies, timeout=3)
# print(r)
# print(r.status_code)  # 状态码
# print(r.encoding)  # 文本编码
# print(r.headers)
# print(r.cookies)
# print(r.text)
# print(r.json())


"""
httpx提供了Client来解决以上问题,Client是基于HTTP连接池实现的,
这意味着当你对一个网站发送多次请求的时候,Client会保持原有的TCP连接,从而提升程序的执行效率。
"""
# with httpx.Client() as client:
#     headers = {'X-Custom': 'value'}
#     r = client.get('https://example.com', headers=headers)
#     print(r.text)

"""
我们可以将headers、cookies、params等参数放在http.Client()中,在Client下的请求共享这些配置参数
可以看出,r1的请求头包含{'x-auth': 'from-client'}, r2虽然配置了headers2
Python中编写网络监控通常涉及到使用一些专门的来监视网络状态、性能指标和连接活动。以下是一个简要的概述: 1. **使用**: - `psutil`:这是一个用于系统资源监控的,可以获取网络接口(如CPU、内存、网络流量等)的数据。 - `socket`或`asyncio`:用于直接进行网络连接的测试,比如检测网络连通性。 - `requests` 或 `httpx`:对于HTTP/HTTPS监控,可以发送GET请求检查响应状态。 - `nmap` 或 `scapy`:用于更高级的网络扫描和探测,但这些可能需要root权限。 2. **基本步骤**: - 监测网络接口:使用`psutil.net_io_counters()`获取网络接口的输入/输出字节数。 - 连接测试:定期尝试连接到服务器,记录连接时间和结果。 - HTTP监控:发送HTTP HEAD请求检查网站是否可用。 - 设置告警:如果监控到异常情况(如超出预期的流量、超时未响应等),触发报警机制。 3. **示例代码**: ```python import psutil import requests import time def check_website(url, timeout=5): try: response = requests.head(url, timeout=timeout) return response.status_code == 200 except (requests.exceptions.RequestException, ConnectionError): return False while True: network_stats = psutil.net_io_counters() if network_stats.bytes_sent > threshold: print("发送流量超过阈值") if not check_website('https://example.com', 1): print("网站访问失败") time.sleep(60) # 每分钟检查一次 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值