requests
是一个用于 HTTP 请求的简单且强大的 Python 库,以下是 requests
常用操作示例。
requests
bashpip install requests
requests
模块pythonimport requests
pythonresponse = requests.get("https://api.example.com/data")
print(response.status_code) # 状态码
print(response.json()) # 获取 JSON 格式响应数据
print(response.text) # 获取文本格式响应数据
pythonpayload = {"key": "value"}
response = requests.post("https://api.example.com/data", json=payload)
print(response.json())
python# PUT 请求
response = requests.put("https://api.example.com/data", json={"update": "value"})
# DELETE 请求
response = requests.delete("https://api.example.com/data")
pythonparams = {"query": "test"}
response = requests.get("https://api.example.com/data", params=params)
print(response.url) # 完整的请求 URL
pythonheaders = {"Authorization": "Bearer token"}
response = requests.get("https://api.example.com/data", headers=headers)
pythonresponse = requests.get("https://api.example.com/data", timeout=10)
pythonfiles = {"file": ("filename.txt", open("filename.txt", "rb"), "text/plain")}
response = requests.post("https://api.example.com/upload", files=files)
print(response.status_code)
使用 requests.Session()
进行会话管理,可以在同一会话中共享 cookie 和 headers。
pythonwith requests.Session() as session:
session.headers.update({"Authorization": "Bearer token"})
response = session.get("https://api.example.com/data")
print(response.json())
pythonresponse = requests.post("https://api.example.com/data", json={"key": "value"})
print(response.json()) # 自动解析 JSON 响应
虽然 requests
没有内置重试机制,但可以借助 urllib3
提供的 Retry
类:
pythonfrom requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
session = requests.Session()
retry = Retry(connect=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
session.mount("http://", adapter)
session.mount("https://", adapter)
response = session.get("https://api.example.com")
pythonprint(response.status_code) # 获取状态码
print(response.text) # 获取文本内容
print(response.content) # 获取二进制内容
print(response.json()) # 解析 JSON 响应
pythonprint(response.headers) # 所有响应头
print(response.headers["Content-Type"]) # 特定响应头
pythonproxies = {
"http": "http://proxyserver:port",
"https": "https://proxyserver:port",
}
response = requests.get("https://api.example.com", proxies=proxies)
python# 设置请求中的 Cookie
cookies = {"session_id": "123456"}
response = requests.get("https://api.example.com", cookies=cookies)
# 获取响应中的 Cookie
print(response.cookies)
pythonurl = "https://example.com/file.zip"
response = requests.get(url, stream=True)
with open("file.zip", "wb") as file:
for chunk in response.iter_content(chunk_size=1024):
file.write(chunk)
pythonresponse = requests.get("https://example.com", verify=False)
pythonresponse = requests.get("https://example.com", verify="/path/to/cert.pem")
本文作者:皓月归尘
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!