API postpayload包含文本变量



我正试图将一个文本变量添加到POST请求中,我想要一些关于我可能做错了什么的建议。

原始代码是用html编写的,但我想在python中使用它。

这是原始HTML:

<form name="channel327911" action="https://secure.logmeinrescue.com/Customer/Download.aspx"
method="post">
<table>
<tr><td>Please enter your name: </td><td><input type="text" name="name" maxlength=
"64" /></td></tr>
</table>
<input type="submit" value="Channel 01" />
<input type="hidden" name="EntryID" value="327911" />
<input type="hidden" name="tracking0" maxlength="64" />
</form>

这是我的python代码:

import requests
json_payload = {
"EntryID": "327911",
"tracking0": "64"
}
requestlink = requests.post(url = "https://secure.logmeinrescue.com/Customer/Download.aspx", data = json_payload)
stuff = requestlink.content
with open("supportlmi.exe", 'wb') as s:
s.write(stuff)

问题是,如果我试图将name添加到帖子的正文中,就像这样:

import requests
json_payload = {
"name": "Conglomo - Rocko"
"EntryID": "327911",
"tracking0": "64"
}
requestlink = requests.post(url = "https://secure.logmeinrescue.com/Customer/Download.aspx", data = json_payload)
stuff = requestlink.content
with open("supportlmi.exe", 'wb') as s:
s.write(stuff)

然后它就会出错。我认为一定有一种方法可以将名称传递到正文中,因为您可以使用表单在html中进行此操作。

注意:您可以使用上面的HTML代码,它应该可以工作。我加入了LOGMEIN的测试支持小组,这样你就可以在HTML中尝试了:)

编辑:结果应该是下载Logmein的启动器。不是状态代码。

我真的想出了解决这个问题的办法!不是将name放在正文中,而是像这样将名称附加到url本身;https://secure.logmeinrescue.com/Customer/Download.aspx?name=Conglomo%20Rocko这样做,我就不需要把名字写在正文里了。结果是Logmein的启动器的exe下载!:)

这对我有效

import requests
payload = {
"EntryID": "327911",
"tracking0": "64",
"name": "Conglomo - Rocko"
}
response = requests.post("https://secure.logmeinrescue.com/Customer/Download.aspx", json=payload)
stuff = response.content
print(stuff)
print(response.status_code)

您需要将有效载荷作为json传递给请求

最新更新