我有这样的网址:
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
,但在那里找不到。也是NOT与this question的副本。
您的示例的POST
-URL将是http://example.com:666/run
。 POST
请求的数据存储在请求正文中(对于该示例,这将是您的params
词典)。看着URL
的人不能直接看到它。