【问题标题】:API postpayload include text variablesAPI postpayload 包含文本变量
【发布时间】:2021-11-10 19:17:57
【问题描述】:

我正在尝试将文本变量添加到 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 下载! :)

【问题讨论】:

    标签: python html api


    【解决方案1】:

    这对我有用

    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 传递给请求

    【讨论】:

    • 我很抱歉,因为我应该提到结果将是一个下载文件。从技术上讲,它会给你一个状态码,但它不会给你下载。相反,它可能会重定向到下载网页,而不是实际下载文件。我实际上想出了如何在请求中获取名称。我更新了我的帖子以反映这些信息。但是,我很可能会给您答案,因为您很友善,可以尝试提供帮助。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 2013-11-08
    相关资源
    最近更新 更多