如何处理python请求post请求中的特殊字符

2024-05-14 16:00:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python requests包发送HTTP POST请求

工作curl命令如下所示(从chromedevtools网络选项卡捕获,右键单击someFile.php并选择“copyascurl”)。在终端中运行时,它输出一个有效的非空响应

curl 'https://somedomain.com/someFile.php' \
  --data-raw $'abc=ZXC%20*%20QWE%20***%20BNM%20((someThing%20%3D%200))%20AND%20anotherThing%20%3E%3D%20\'2020-5-9\'%20IOP%20&someparam=1&myhash=a5d96895cab824fbd9bb85627a8f909d'

我尝试用python复制POST请求,方法是:

import requests
url = 'https://somedomain.com/someFile.php'
out = requests.post(url,data=r'abc=ZXC%20*%20QWE%20***%20BNM%20((someThing%20%3D%200))%20AND%20anotherThing%20%3E%3D%20\'2020-5-9\'%20IOP%20&someparam=1&myhash=a5d96895cab824fbd9bb85627a8f909d')
print(out.text)

。。。但这只是打印一个空字符串

如何在python中处理这个curl命令


Tags: https命令comurldatacurlpostrequests
2条回答

只需将Content-Type头设置为application/x-www-form-urlencoded就可以解决您的问题

headers={}
headers["Content-Type"]="application/x-www-form-urlencoded"
data="....."
output=requests.post(url,headers=headers,data=data)
url="https://somedomain.com/someFile.php"
params = {"abc":"text without quote symbols", "someParam":.... }
res=requests.post(url, params=params)
print(res.text) 

相关问题 更多 >

    热门问题