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

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

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

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

免费使用 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