簡體   English   中英

python 請求 - 獲取 POST 發出的原始 http

[英]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.

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