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

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

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

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

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 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 请求

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

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 请求异常

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

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 进行接口调试和代码生成,提高开发效率。