Python的Requests库是一个非常流行的HTTP库,用于发送各种HTTP请求。它简化了与Web服务的交互,提供了易于使用的API。以下是一些基本的Requests用法示例:
安装Requests
首先,确保你已经安装了Requests库。如果还没有安装,可以通过pip安装:
pip install requests
发送GET请求
import requests url = 'http://httpbin.org/get'
response = requests.get(url) # 访问响应内容
print(response.text) # 以文本形式返回响应内容
print(response.content) # 以字节形式返回响应内容 # 访问响应状态码
print(response.status_code) # 访问响应头
print(response.headers)
发送POST请求
url = 'http://httpbin.org/post'
data = {'key': 'value'} response = requests.post(url, data=data) print(response.text)
在POST请求中,你可以通过data
参数发送表单数据,通过json
参数发送JSON数据:
json_data = {'key': 'value'}
response = requests.post(url, json=json_data) print(response.text)
发送其他类型的HTTP请求
Requests支持多种HTTP方法,如PUT、DELETE、HEAD、OPTIONS等,使用方式与GET和POST类似:
# PUT请求
url = 'http://httpbin.org/put'
data = {'key': 'value'}
response = requests.put(url, data=data) # DELETE请求
url = 'http://httpbin.org/delete'
response = requests.delete(url) # HEAD请求
url = 'http://httpbin.org/get'
response = requests.head(url)
print(response.headers) # HEAD请求通常只返回响应头
定制请求头
你可以通过headers
参数定制HTTP请求头
url = 'http://httpbin.org/get'
headers = {'User-Agent': 'my-app/0.0.1'}
response = requests.get(url, headers=headers) print(response.text)
会话对象
Requests库还提供了会话(Session)对象,允许你跨请求保持某些参数,如cookies、headers等:
with requests.Session() as s: s.headers.update({'X-Test': 'true'}) response = s.get('http://httpbin.org/get') print(response.text) # 发送第二个请求,此时X-Test头部也会被发送 response = s.get('http://httpbin.org/headers') print(response.text)
异常处理
当发送请求时,可能会遇到网络问题或服务器错误,你可以通过try-except语句来捕获并处理这些异常:
try: response = requests.get('http://some-nonexistent-domain') response.raise_for_status() # 如果响应状态码不是200,则抛出HTTPError异常
except requests.RequestException as e: print(e)
Requests库非常强大且易于使用,它使得与HTTP服务的交互变得简单而直观。