【问题标题】:Cannot replicate Chrome request with cURL无法使用 cURL 复制 Chrome 请求
【发布时间】:2018-03-12 23:27:32
【问题描述】:

我想使用 Python 的requests 模块来登录网页https://www.tennistv.com/login。使用 Chrome 的开发人员工具,我查看了点击登录按钮后发送的请求的外观。

使用 {"Email":"[MAIL]","Password":"[PASSWORD]"} 形式的 JSON 有效负载生成对 URL https://www.tennistv.com/api/users/v1/login 的 POST 请求。但是,我无法让它与 Python 的 requests 模块和 cURL 一起工作。 Chrome 的开发者工具可以选择生成带有请求的 cURL 命令。这就是我所做的,但即使是 cURL 请求也会产生以下错误:

{
    "error": {
        "validationErrors": [{
            "key": "loginModel",
            "value": [""]
        }],
        "errorMessage": "There was an error while validating input data (UR001)",
        "errorCode": "UR001",
        "userErrorCode": "UR001"
    }
}

生成的 cURL 请求如下所示:

curl "https://www.tennistv.com/api/users/v1/login" -H "Pragma: no-cache" -H "Origin: https://www.tennistv.com" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36" -H "content-type: application/json" -H "Accept: */*" -H "Cache-Control: no-cache" -H "Referer: https://www.tennistv.com/login" -H "Connection: keep-alive" --data-binary "^{^\^"Email^\^":^\^"[MAIL]^\^",^\^"Password^\^":^\^"[PASS]^\^"^}" --compressed

Chrome 的请求如下所示:

如何使 cURL 请求正常工作? Chrome和cURL发出的请求有什么区别?

【问题讨论】:

    标签: google-chrome curl login


    【解决方案1】:

    试试这个 cURL:

    curl -v "https://www.tennistv.com/api/users/v1/login" \
    -H "Pragma: no-cache" \
    -H "Origin: https://www.tennistv.com" \
    -H "Accept-Encoding: gzip, deflate, br" \
    -H "Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7" \
    -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36" \
    -H "content-type: application/json" \
    -H "Accept: */*" \
    -H "Cache-Control: no-cache" \
    -H "Referer: https://www.tennistv.com/login" \
    -H "Connection: keep-alive" \
    --data-binary '{"Email":"foobar@domain.tld","Password":"xxx"}'
    

    (使用您的凭据编辑最后一行)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-19
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 2015-12-14
      相关资源
      最近更新 更多