Python 请求无法正确发送 cookie?

问题描述 投票:0回答:1

我正在尝试使用python请求发送带有cookie的请求,但它似乎没有发送cookie

这是要求

nyt_stat_url = 'https://www.nytimes.com/svc/crosswords/v3/undefined/puzzles.json'
cookies = {'NYT-S': '<cookie>'}
params = {
        'date_start': '2024-01-01',
        'date_end': '2024-01-26'
    }

response = requests.get(nyt_stat_url, cookies=cookies, params=params)

并且响应说我还没有解决任何谜题,但是当我在 httpie 中执行相同的请求时,我得到了我期望的响应,该响应显示了我已经解决了哪些谜题。我也尝试过将 cookie 作为标头传递并得到相同的结果

headers = {'cookie': 'NYT-S=<cookie>'}
response = requests.get(nyt_stat_url, headers=headers, params=params)

我需要做什么才能正确发送请求?

python python-requests
1个回答
0
投票

该错误不太可能出现在 Python

requests
模块中。我修改了你的程序,如下所示:

import requests
nyt_stat_url = 'http://127.0.0.1:8080/svc/crosswords/v3/undefined/puzzles.json'
cookies = {'NYT-S': '<cookie>'}
params = {
        'date_start': '2024-01-01',
        'date_end': '2024-01-26'
    }

response = requests.get(nyt_stat_url, cookies=cookies, params=params)

然后我启动了一个 netcat 进程来接受新连接并显示收到的数据:

nc -l -4 127.0.0.1 8080

在另一个窗口中运行我创建的 Python 程序:

python3 x.py
。这是我看到 netcat 的输出:

GET /svc/crosswords/v3/undefined/puzzles.json?date_start=2024-01-01&date_end=2024-01-26 HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: python-requests/2.31.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Cookie: NYT-S=<cookie>

在我看来,cookie 已正确包含在 HTTP 标头中。这意味着更可能的解释是 URL 不正确、开始和结束数据参数不正确(例如,日期格式错误)或 cookie 不正确。

© www.soinside.com 2019 - 2024. All rights reserved.