gpt4 book ai didi

javascript - 如何通过 NodeJS 发送带有 cookie 的 HTTP 请求?

转载 作者:行者123 更新时间:2023-12-03 08:09:56 32 4
gpt4 key购买 nike

我想通过 NodeJS 发送带有 cookie 的 HTTP POST 请求,模拟以下“curl”命令的行为:

[注意:这里是 HTTPS 而不是 HTTP]

curl -v --header "Referer: https://some-domain.com/accounts/login/" --cookie csrftoken=xxxxxssometokenxxxxx --data 'csrfmiddlewaretoken=xxxxxssometokenxxxxx&username=tom.rock&password=somepassword' https://some-domain.com/

我当前的代码如下,但我总是得到403:

var request = require("request");
var querystring = require('querystring');

process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
var endpoint = "https://some-domain.com/";
var username = "tom.rock";
var password = "somepassword";
var csrftoken = "xxxxxssometokenxxxxx"; // Guarantee the token is fresh

var form = {
username: username,
password: password,
csrfmiddlewaretoken: csrftoken
};

request({
"headers": {
"Referer": endpoint + "accounts/login/",
"Cookie": "csrftoken=" + csrftoken
},
"url": endpoint,
"body": querystring.stringify(form),
"method": "POST"
}, function(error, response, body) {
if (error) {
console.log("Here is error:");
console.dir(error);
} else {
console.log("Status code is " + response.statusCode);
}
});

最佳答案

您收到 403 错误,不是因为 cookie header ,而是因为缺少内容类型 header 。像这样修改你的标题字段。

    "headers": {
"Referer": endpoint + "accounts/login/",
"Cookie": "csrftoken=" + csrftoken,
'Content-Type': 'application/x-www-form-urlencoded'
},

还为帖子有效负载的长度添加内容长度 header 。

关于javascript - 如何通过 NodeJS 发送带有 cookie 的 HTTP 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34189019/

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