[英]what is the difference between data and params in requests?
我正在使用python requests
模塊,我之前發送我的參數是這樣的:
requests.post(url=url, params=params)
但是今天,我發現我這樣發送我的數據,它失敗了,我改成這樣:
requests.post(url=url, data=params)
那么沒關系, data
和params
有什么區別?
我觀察到請求有一個標頭X-Requested-With:XMLHttpRequest
,是因為這個嗎?
requests.post(url, data=data)<\/code>將發出
HTTP POST<\/a>請求,並且
<\/li>
requests.get(url, params=params)<\/code>將發出
HTTP GET<\/a>請求
<\/li><\/ul>
下面是如何在 GET 中使用參數:
哪個輸出
請注意,有效負載最終出現在 URL 的查詢字符串<\/a>中。 由於它們最終到達那里,任何有權訪問該 URL 的人都可以查看它們,這就是為什么您不應該將查詢字符串用於密碼等敏感數據的原因。
以下是如何在 POST 中使用數據:
哪個輸出
請注意 POST 數據如何沒有顯示在查詢字符串中,因為它們是通過請求的主體傳輸的。
對此答案的批評指出,還有更多選擇。 我在最初的答案中從未否認過這樣的事情,但讓我們仔細看看。
文檔示例始終顯示:
- 用於 GET 的 params 關鍵字,以及<\/li>
- 用於 POST 的數據關鍵字<\/li><\/ul>
但這並不意味着它們是相互排斥的。
理論上,您可以在 POST 中將兩者混合在一起:
哪個輸出但是您不能將數據混合到 GET 中:輸出:
注意數據字段是如何消失的。"
首先,有兩種不同的方法<\/strong>:
requests.post()<\/code>發出 POST 請求(將所有參數放在正文中)
<\/li>
requests.get()<\/code>發出 GET 請求(將所有參數放在 URL 中)
<\/li><\/ul>
params=<\/code> ,沒有字符串修改。
<\/li>
data=<\/code> ,對參數應用表單編碼字符串修改。
<\/li><\/ul> 因此,您有 4 個選擇來發送請求:
他實際上是在談論requests.post()<\/code>但在他自己的示例中使用requests.get()<\/code> 。
"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.