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

本文介绍了 HTTP PUT 请求及其在 Python 中的实现。PUT 请求常用于更新服务器资源,如用户信息,通过安装和验证 requests 库,可以轻松发送 PUT 请求,处理响应,进行错误处理,并设置自定义头和身份验证。

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

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

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

本文来介绍一下 HTTP 请求中的 PUT 请求以及如何在 Python 中发送这种请求。PUT 请求通常用于更新服务器上的资源,比如修改用户信息或者更新配置数据。

 

安装 requests 库

首先,我们需要一个非常流行的库——requests,它让 HTTP 请求变得非常简单。打开你的命令行工具,然后运行:

pip install requests

macOS 中需要将pip改为pip3

 
验证安装:

安装完成后,你可以通过以下命令来检查安装是否成功:

import requests
print(requests.__version__)

如果没有报错并且输出了版本号,那就说明一切顺利!

 

发送一个简单的 PUT 请求

现在我们来发送一个最基本的 PUT 请求。假设我们有一个 API 地址 https://jsonplaceholder.typicode.com/posts/1,我们要更新这篇帖子的信息。

import requests

url = 'https://jsonplaceholder.typicode.com/posts/1'
data = {
    "title": "foo",
    "body": "bar",
    "userId": 1
}

response = requests.put(url, json=data)
print(response.status_code)
print(response.json())


解释代码:

  • url 是我们要请求的 API 地址。
  • data 是我们要更新的内容,用一个字典来表示。
  • requests.put 发送 PUT 请求,json=data 表示我们发送的是 JSON 数据。
  • response.status_code 会输出响应的状态码,比如 200 表示成功。
  • response.json() 会输出服务器返回的 JSON 数据。
Python 中发送 put 请求

 

PUT 请求中的参数

发送 JSON 数据

刚才我们已经演示了如何发送 JSON 数据,只需要在 requests.put 中使用 json=data 参数。

   

发送表单数据

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

response = requests.put(url, data=data)

 

发送文件

要发送文件的话,你可以这样做:

files = {'file': open('report.txt', 'rb')}
response = requests.put(url, files=files)

 

处理 PUT 请求的响应

检查响应状态码

检查状态码是了解请求是否成功的关键:

if response.status_code == 200:
    print("请求成功")
else:
    print("请求失败")

 

解析响应内容

你可以使用 response.json() 来解析 JSON 响应,或者使用 response.text 获取文本响应。

print(response.json())

 

错误处理

处理错误也很重要。你可以这样做:

try:
    response = requests.put(url, json=data)
    response.raise_for_status()
except requests.exceptions.HTTPError as err:
    print(f"HTTP 错误: {err}")
except Exception as err:
    print(f"其他错误: {err}")

 

高级用法

设置自定义请求头

有时候你需要设置一些自定义的请求头:

headers = {'Content-Type': 'application/json'}
response = requests.put(url, json=data, headers=headers)

 

使用身份验证

如果 API 需要身份验证,你可以这样做:

response = requests.put(url, json=data, auth=('user', 'pass'))

 

超时和重试

设置超时很简单:

response = requests.put(url, json=data, timeout=5)


重试请求可以使用 requestsHTTPAdapter

from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry

s = requests.Session()
retry = Retry(connect=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
s.mount('http://', adapter)
s.mount('https://', adapter)

response = s.put(url, json=data)

 

完整示例代码

让我们把这些知识点综合起来,写一个完整的示例:

import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry

url = 'https://jsonplaceholder.typicode.com/posts/1'
data = {
    "title": "foo",
    "body": "bar",
    "userId": 1
}
headers = {'Content-Type': 'application/json'}

s = requests.Session()
retry = Retry(connect=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
s.mount('http://', adapter)
s.mount('https://', adapter)

try:
    response = s.put(url, json=data, headers=headers, timeout=5)
    response.raise_for_status()
    print("请求成功:", response.json())
except requests.exceptions.HTTPError as err:
    print(f"HTTP 错误: {err}")
except Exception as err:
    print(f"其他错误: {err}")

 

使用 Apifox 测试、管理接口

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

 

调试 PUT 接口

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

Python 中发送 put 请求

生成代码

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

Python 中发送 put 请求


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

Python 中发送 put 请求


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

Python 中发送 put 请求


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

   

总结

本文介绍了 HTTP PUT 请求及其在 Python 中的实现。PUT 请求常用于更新服务器资源,如用户信息,通过安装和验证 requests 库,可以轻松发送 PUT 请求,处理响应,进行错误处理,并设置自定义头和身份验证。还介绍了 Apifox ,用于调试和生成 API 请求代码,提升开发效率,强烈推荐使用!

Apifox