[英]python requests - get raw http as issued by POST
我有一個 URL 這樣的:
http://example.com:666/run?foo&RT&0&ABC&def%40ijk|CIA&Z=&TU=[%22ding%22,%22dong=@xyz%22]
我保留所有有意義的字符的地方。 然后我發出這個 URL :
response = requests.get(url=url, auth=auth, headers=headers)
我檢索了預期的結果。 現在,我想用POST
替換GET
,這樣我就可以這樣做:
response = requests.post(url=url, json=params, auth=auth, headers=headers)
,其中json
需要是這種形狀的字典:
params={ "func":"foo", "args":[ "RT", 0, "ABC", "def@ijk|CIA", "Z", ["ding","dong=@xyz"], ] }
不幸的是,我無法讓它工作,我懷疑這可能與特殊字符(“@”、“|”等)、編碼或類似的處理有關。 為了了解發生了什么,我想確切地知道POST
發送的原始 URL 是什么(這樣我就可以將它與輸入給GET
的 URL 進行比較,我知道這是有效的)。 我怎樣才能做到這一點?
我確實看過response.request
,但在那里找不到。 這也不是這個問題的重復。
注意:這不是關於請求數據的問題(如response.request.body
),而是關於實際發布的原始 URL (由此body
元素制成)。
您的示例的POST
- URL 將是http://example.com:666/run
。 POST
請求的數據存儲在請求正文中(對於該示例,這將是您的params
字典)。 查看URL
的人無法直接看到它。 如果我嘗試@furas 建議(將params
發送到網絡服務器),它會起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.