不需要的字符串格式

2024-10-02 08:17:25 发布

您现在位置:Python中文网/ 问答频道 /正文

很快的问题。使用请求发送PUT时,我将发送以下内容:

payload = {"host": "tst123:3306"}
r = requests.put(url, data=payload)

请求似乎正在格式化主机字符串,因此api接收到“tst123%3A3306”

有没有办法防止这种情况

有什么想法吗

C级


Tags: 字符串apihosturldataput情况requests
2条回答

你看到的是完美的行为。参数必须根据模式进行编码

http://en.wikipedia.org/wiki/URL-Encoding

这是自web早期以来众所周知的最佳实践

在应用程序方面,您必须自己解码参数。每种编程语言都有相应的模块。在大多数情况下,所有的web框架都应该在引擎盖下进行内部解码

在这种情况下,不是params而是PUT数据。我通过使用

payload = json.dumps({"host": "tst123:3306"})                                 
headers = {'content-type': 'application/json'}                                
r = requests.put(url, data=payload, headers=headers)

我可以理解为什么url参数需要编码,但是为什么PUT数据

相关问题 更多 >

    热门问题