非常快的问题。当使用请求发送PUT时,我发送以下内容:
payload = {"host": "tst123:3306"}
r = requests.put(url, data=payload)
请求似乎是格式化主机字符串,因此api正在接收'tst123%3A3306'
有没有办法阻止这种情况?
非常感谢任何想法
C
答案 0 :(得分:1)
你看到的是一种完美的行为。必须根据模式
对参数进行编码http://en.wikipedia.org/wiki/URL-Encoding
自网络早期以来,这是众所周知的最佳实践。
在应用程序端,您必须自己解码参数。每种编程语言都有模块。在大多数情况下,所有的Web框架都应该在内部进行解码。
答案 1 :(得分:1)
在这种情况下,它不是params而是PUT数据。我通过使用
解决了这个问题payload = json.dumps({"host": "tst123:3306"})
headers = {'content-type': 'application/json'}
r = requests.put(url, data=payload, headers=headers)
我能理解为什么需要对url参数进行编码,但为什么要使用PUT数据?