httpX使用方法
时间: 2025-03-30 12:03:52 浏览: 44
### 关于 `httpx` 的使用方法
`httpx` 是一个功能强大的 Python 库,用于发送 HTTP 请求。它支持同步和异步操作,并兼容现代 Web 开发的需求,例如处理 HTTPS 和代理等功能。
以下是关于 `httpx` 基本使用的详细介绍以及一些示例代码:
#### 1. 发送 GET 请求
通过 `httpx.get()` 方法可以轻松发起 GET 请求,并获取目标 URL 的响应数据。
```python
import httpx
url = 'https://spa16.scrape.center/'
response = httpx.get(url)
print(response.text) # 输出网页的 HTML 内容[^1]
```
#### 2. 处理请求中的异常情况
当网络请求可能失败时,建议捕获相应的异常以便更好地控制程序流程。`httpx` 提供了多种异常类来帮助开发者应对不同类型的错误场景。
```python
import httpx
try:
response = httpx.get('https://nonexistentdomain.com')
print(response.status_code)
except httpx.HTTPError as exc:
if hasattr(exc, 'response') and exc.response is not None:
if exc.response.status_code == 404:
print("资源未找到")
else:
print(f"HTTP 错误: {exc.response.status_code}")
except httpx.RequestException as e:
print(f"请求发生错误: {e}") # 捕捉其他类型的请求异常[^2]
```
#### 3. 自定义 Headers 和 Timeout 设置
为了模拟浏览器行为或者提高请求可靠性,可以在请求中加入自定义头部信息或设置超时时间。
```python
import httpx
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
}
timeout = httpx.Timeout(10.0)
response = httpx.get('https://example.org', headers=headers, timeout=timeout)
print(response.headers) # 查看服务器返回的头部信息
```
#### 4. 异步请求的支持
如果应用程序需要高效并发执行多个 HTTP 调用,则应考虑利用 `asyncio` 配合 `httpx.AsyncClient` 实现异步 I/O 操作。
```python
import asyncio
import httpx
async def fetch_data():
async with httpx.AsyncClient() as client:
response = await client.get('https://jsonplaceholder.typicode.com/posts/1')
data = response.json()
print(data['title'])
loop = asyncio.new_event_loop()
loop.run_until_complete(fetch_data())
```
#### 5. POST 请求提交表单数据
除了简单的 GET 请求外,还可以借助 `post()` 函数向指定端点传递 JSON 数据或其他形式的内容体。
```python
import httpx
payload = {"username": "admin", "password": "secret"}
response = httpx.post('https://httpbin.org/post', json=payload)
result = response.json()
print(result["json"]) # 显示接收到的数据对象
```
---
###
阅读全文
相关推荐


















