簡體   English   中英

不需要的字符串格式

[英]Unwanted string formatting

很快的問題。 當使用請求發送PUT時,我發送以下信息:

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

請求似乎是格式化主機字符串,因此api正在接收'tst123%3A3306'

有辦法防止這種情況嗎?

任何想法都非常感激

C

你看到的是一種完美的行為。 必須根據模式對參數進行編碼

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

這是自網絡早期以來眾所周知的最佳實踐。

在應用程序端,您必須自己解碼參數。 每種編程語言都有模塊。 在大多數情況下,所有的Web框架都應該在內部進行解碼。

在這種情況下,它不是params而是PUT數據。 我通過使用而解決了這個問題

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

我能理解為什么url參數需要編碼但為什么PUT數據?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM