python请求-获取POST发布的原始http

问题描述 投票:0回答:1

我有这样的网址:

http://example.com:666/run?foo&RT&0&ABC&def%40ijk|CIA&Z=&TU=[%22ding%22,%22dong=@xyz%22]

我保留了所有有意义的字符。然后,我通过以下网址发布此网址:

response = requests.get(url=url, auth=auth, headers=headers)

我检索了预期的结果。现在,我想将GET替换为POST,以便可以执行此操作:

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,但在那里找不到。也是NOTthis question的副本。

注意:这不是关于请求数据的问题(如response.request.body中的问题,它是关于实际发布的原始URL(由此body元素组成的)。]

python request python-requests urllib3 httplib
1个回答
0
投票

您的示例的POST-URL将是http://example.com:666/runPOST请求的数据存储在请求正文中(对于该示例,这将是您的params词典)。看着URL的人不能直接看到它。如果我尝试@furas建议(将params发送到Web服务器),它将起作用。

Maybe this would help you

© www.soinside.com 2019 - 2024. All rights reserved.