添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Python 中如何发送一个 post 请求?图文教程

本文介绍了如何在 Python 中发送 POST 请求,包括安装 requests 库、发送简单及带参数、JSON 数据和表单数据的 POST 请求,还讲解了处理响应、异常及高级用法,如设置请求头和发送文件。

用 Apifox,节省研发团队的每一分钟

本文来介绍一下如何在 Python 中发送一个 POST 请求。你可能会问,为什么我要学这个?很简单,如果你想和各种 API 打交道,比如提交数据到服务器,就需要用到 POST 请求。下面我们一步一步来,确保你能轻松掌握。


安装 requests

在开始之前,我们需要安装一个非常好用的库—— requests ,这个库让你发送 HTTP 请求变得非常简单。安装它非常简单,只需要在命令行中运行下面的命令:

pip install requests

macOS 系统中需要将 pip 改为 pip3 ,安装好之后,我们在代码中导入它:

import requests

就这样,准备工作就完成了!


发送简单的 POST 请求

现在我们来发送一个最简单的 POST 请求。假设我们要发送请求到一个网址:

response = requests.post('https://example.com/api')
print(response.status_code)

上面的代码发送了一个简单的 POST 请求,并打印出响应的状态码,状态码 200 表示成功(你需要将地址替换为实际可用的)。

Python 中如何发送一个 post 请求

带参数的 POST 请求

很多时候,我们需要发送一些参数。比如,我们要发送两个参数 key1 key2

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://example.com/api', data=data)
print(response.status_code)

我们把参数放在一个字典里,然后传递给 data 参数,这样就能发送带参数的 POST 请求了。

发送带 JSON 数据的 POST 请求

有时候,我们需要以 JSON 格式发送数据。这时候可以这样做:

import json
json_data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://example.com/api', json=json_data)
print(response.status_code)

使用 json 参数,可以自动把数据转换成 JSON 格式发送,非常方便。

发送带表单数据的 POST 请求

如果需要发送表单数据,可以这样做:

form_data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://example.com/api', data=form_data)
print(response.status_code)

这个和带参数的 POST 请求很相似,只是数据格式不同。

处理 POST 请求的响应

发送请求后,我们需要处理服务器的响应。最简单的做法是检查状态码:

response = requests.post('https://example.com/api', data={'key': 'value'})
if response.status_code == 200:
    print('Success:', response.json())
else:
    print('Failed:', response.status_code)

这里我们检查状态码是否是 200,然后打印出响应的内容。


处理 POST 请求异常

在发送请求时,可能会遇到各种异常情况。我们可以用 try except 来处理:

try:
    response = requests.post('https://example.com/api', data={'key': 'value'})
    response.raise_for_status()
except requests.exceptions.HTTPError as err:
    print('HTTP error occurred:', err)
except Exception as err:
    print('Other error occurred:', err)

这样我们就能捕捉并处理各种可能的错误。


高级用法

设置请求头

有时候我们需要设置一些请求头,比如 Content-Type

headers = {'Content-Type': 'application/json'}
response = requests.post('https://example.com/api', headers=headers, json={'key': 'value'})
print(response.status_code)

发送文件

如果需要发送文件,可以这样做:

files = {'file': open('test.txt', 'rb')}
response = requests.post('https://example.com/api', files=files)
print(response.status_code)

只需把文件放在 files 字典里,然后传递给 requests.post

使用 Apifox 测试、管理接口

Apifox 是一个集 API 文档、调试、Mock 和自动化测试于一体的工具,它可以帮助我们更加方便地调试和测试接口,还可以根据接口 快速生成业务代码

调试 POST 接口

首先打开 Apifox,创建一个新的 HTTP 项目,在项目中,将鼠标光标移动到 + 号按钮那里,点击 "新建接口"。填写接口的 URL 和请求方法(POST),保存后来到“运行”页,点击 "发送" 按钮,查看请求的响应,这样可以测试接口是否正常。

Python post 请求

生成代码

Apifox 可以自动生成请求代码,包括生成 Python、JAVA、Axios  等代码。接口发送请求后,在下方的“实际请求”中,可以根据你的业务需求选择生成相应语言的代码。

Python post 请求


除此之外,还可以在“文档”页面,点击右上角的 "生成代码" 按钮,你可以在此生成接口请求代码,也可以生成实际的业务代码。

Python post 请求


比如我要生成一个 Python 的接口请求代码,其示例生成的代码如下图所示:

Python post 请求


是不是非常 nice,利用 Apifox 能大大提升开发效率,快去试试吧!


总结

本文介绍了如何在 Python 中发送 POST 请求,包括安装 requests 库、发送简单及带参数、JSON 数据和表单数据的 POST 请求,还讲解了处理响应、异常及高级用法,如设置请求头和发送文件。此外,推荐使用 Apifox 进行接口调试和代码生成,提高开发效率。

Python POST 请求