本文来聊聊在 Python 中如何发送一个 GET 请求。GET 请求是我们向服务器获取数据的方式之一,使用起来非常简单。废话不多说,直接上干货!
安装请求库
首先,我们需要一个非常好用的库——requests
。如果你还没装,打开你的终端,运行下面的命令:
pip install requests
macOS 用户自带 Python3 环境,所以你可能需要将pip
改为pip3
。
发送基本的 GET 请求
使用 requests 库发送 GET 请求
有了 requests 库,发送 GET 请求就像喝水一样简单。来看个例子:
import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code)
print(response.text)
这里我们向一个示例 API 发送了 GET 请求,打印了响应的状态码和文本内容。
处理 GET 请求响应
你可以轻松获取响应内容,比如 JSON 数据:
data = response.json()
print(data)
处理查询参数
有时候,我们需要在请求中添加查询参数。用 params
参数就可以搞定:
params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
print(response.url)
print(response.json())
这样,我们就向服务器发送了带查询参数的请求。
处理请求头
有时候,我们还需要在请求中添加一些自定义请求头,比如 User-Agent
:
headers = {'User-Agent': 'my-app/0.0.1'}
response = requests.get('https://jsonplaceholder.typicode.com/posts', headers=headers)
print(response.request.headers)
这样,我们就能轻松添加自定义请求头了。
处理 GET 请求异常
在网络请求中,异常情况在所难免。我们可以通过 try-except
来捕获异常:
try:
response = requests.get('https://jsonplaceholder.typicode.com/posts')
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
这样就能优雅地处理各种请求异常了。
完整示例代码
综合以上内容,给大家一个完整的示例代码:
import requests
url = 'https://jsonplaceholder.typicode.com/posts'
params = {'userId': 1}
headers = {'User-Agent': 'my-app/0.0.1'}
try:
response = requests.get(url, params=params, headers=headers)
response.raise_for_status()
data = response.json()
print(data)
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
复制粘贴运行,就能看到效果!
常见问题和注意事项
如何处理 HTTPS 请求
requests
库默认支持 HTTPS 请求,你什么都不需要做。
如何设置超时
为了避免请求卡住,我们可以设置一个超时时间:
response = requests.get('https://jsonplaceholder.typicode.com/posts', timeout=5)
这样,超时设置为 5 秒。
使用 Apifox 测试、管理接口
Apifox 是一个集 API 文档、调试、Mock 和自动化测试于一体的工具,它可以帮助我们更加方便地调试和测试接口,还可以根据接口快速生成业务代码。
调试 GET 接口
首先打开 Apifox,创建一个新的 HTTP 项目,在项目中,将鼠标光标移动到+
号按钮那里,点击 "新建接口"。填写接口的 URL 和请求方法(GET),保存后来到“运行”页,点击 "发送" 按钮,查看请求的响应,这样可以测试接口是否正常。
生成代码
Apifox 可以自动生成请求代码,包括生成 Python、JAVA、Axios 等代码。接口发送请求后,在下方的“实际请求”中,可以根据你的业务需求选择生成相应语言的代码。
除此之外,还可以在“文档”页面,点击右上角的 "生成代码" 按钮,你可以在此生成接口请求代码,也可以生成实际的业务代码。
比如我要生成一个 Python 的接口请求代码,其示例生成的代码如下图所示:
是不是非常 nice,利用 Apifox 能大大提升开发效率,快去试试吧!
总结
本文介绍了在 Python 中使用 requests
库发送 GET 请求的基础操作,涵盖了处理查询参数、自定义请求头和异常处理等内容。此外,还介绍了 Apifox 这款产品,讲解怎么调试接口和生成代码,从而提升开发效率,强烈推荐使用!