gpt4 book ai didi

Python 请求 - 为什么在没有 POST 数据的情况下 POST 不退回到 GET?

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:24 28 4
gpt4 key购买 nike

运行 python 版本 3.5.1 和 requests 模块版本 2.9.1

有效的旧版本 - python 版本 2.7.9,遗憾的是没有 requests 模块版本。


在以前的场景中,我只需要处理 POSTGET 请求。

以前,使用 requests 模块时,指定 POST 请求并将 data 关键字参数设置为 None,请求将默认返回到 GET 请求。

request = requests.post(url=self.url, headers=self.headers,
data=self.data, timeout=self.timeout,
proxies=self.proxies, verify=False)

这非常巧妙,因为您可以编写一个通用的 request 函数,在一个 block 中涵盖 GETPOST 请求。然而,情况似乎不再如此,这导致我编写了一些丑陋的代码,如下所示:

if self.data:
request = requests.post(url=self.url, headers=self.headers,
data=self.data, timeout=self.timeout,
proxies=self.proxies, verify=False)
else:
request = requests.get(url=self.url, headers=self.headers,
data=None, timeout=self.timeout,
proxies=self.proxies, verify=False)

这并不是真正可取的。我浏览了 requests Github 和文档,看看是否有任何文件可以证明这一点,但似乎并非如此。

此功能是否已被删除,或者在新版本中是否发生了变化?

最佳答案

您也可以只使用 request() 函数而不是 getpost 便利函数。

import requests

response = requests.request('POST' if self.data else 'GET', url=self.url,
headers=self.headers, data=self.data or None,
timeout=self.timeout, proxies=self.proxies, verify=False)

关于Python 请求 - 为什么在没有 POST 数据的情况下 POST 不退回到 GET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37735679/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com