gpt4 book ai didi

curl - POST 请求在 Postman 中有效,但在 Python 请求中无效(200 响应与机器人检测)

转载 作者:行者123 更新时间:2023-12-04 08:53:54 25 4
gpt4 key购买 nike

我有一个 POST 请求,它与 Postman 和 cURL 完美配合(它返回一个 JSON blob 数据)。但是,当我使用 Python 的 Requests 库执行完全相同的请求时,我得到了 200 成功响应,但是我得到的不是 JSON blob,而是:

<html>
<head>
<META NAME="robots" CONTENT="noindex,nofollow">
<script src="/_Incapsula_Resource?SWJIYLWA=5074a744e2e3d891814e9a2dace20bd4,719d34d31c8e3a6e6fffd425f7e032f3">
</script>
<body>
</body></html>

我使用 HTTP 请求箱来验证来自 Postman/cURL 的请求与来自 Python Requests 的请求完全相同。

这是我在 cURL 中的 Postman 请求:
curl -X POST \
https:/someurl/bla/bla \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 2488e914-531e-4ac7-ae8d-8490b2242396' \
-H 'Referer: https://www.host.com/bla/bla/' \
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:65.0) Gecko/20100101 Firefox/65.0' \
-H 'cache-control: no-cache' \
-d '{"json1":"blabla","etc":"etc"}'

...这是我的 Python 代码:
payload = {
"json1": "blabla",
"etc": "etc",
}

headers = {
'Host': 'www.host.com',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'Referer': 'https://www.host.com/bla/bla/',
'Content-Type':'application/json',
'X-Requested-With': 'XMLHttpRequest',
'Connection': 'keep-alive',
'Origin': 'https://www.host.com',
}

s = requests.Session()
response_raw = s.post(url, json=payload, headers=headers)
print(response_raw)
print(response_raw.text)

我已验证有效负载和 header 正确且有效。任何帮助将非常感激;谢谢!

最佳答案

您将收到 200 成功响应,但响应中没有 JSON 数据。
这意味着它只是一个响应对象。它只包含响应代码
从响应中提取 blob 信息,将响应对象转换为 json
只是 json_resp = response_raw.json()json_resp包含您的实际响应详细信息。

关于curl - POST 请求在 Postman 中有效,但在 Python 请求中无效(200 响应与机器人检测),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54878769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com