Node.js 通过节点提交表单,就像连接到站点一样
我正在尝试创建一个自动工具,它将提交一个表单,以便它能够检测响应随时间的变化。 通常,要提交此表单,我需要登录一个站点并提交表单。 当试图通过邮递员或我制作的一个小节点应用程序发送完全相同的请求时,我得到状态302(而通过firefox调试器重新发送请求效果良好)。 我甚至尝试使用从浏览器导出的HAR。 这是我使用的代码:Node.js 通过节点提交表单,就像连接到站点一样,node.js,authentication,login,https,request,Node.js,Authentication,Login,Https,Request,我正在尝试创建一个自动工具,它将提交一个表单,以便它能够检测响应随时间的变化。 通常,要提交此表单,我需要登录一个站点并提交表单。 当试图通过邮递员或我制作的一个小节点应用程序发送完全相同的请求时,我得到状态302(而通过firefox调试器重新发送请求效果良好)。 我甚至尝试使用从浏览器导出的HAR。 这是我使用的代码: request({ har:{ "bodySize": 320, "method": "POST", "url": "https://***.com/
request({
har:{
"bodySize": 320,
"method": "POST",
"url": "https://***.com/url-to-send-the-form",
"httpVersion": "HTTP/2.0",
"headers": [
{
"name": "Host",
"value": "www.***.com"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0"
},
{
"name": "Accept",
"value": "*/*"
},
{
"name": "Accept-Language",
"value": "en-US,en;q=0.5"
},
{
"name": "Accept-Encoding",
"value": "gzip, deflate, br"
},
{
"name": "Referer",
"value": "https://***.com/page-where-the-form-is/"
},
{
"name": "Content-Type",
"value": "application/x-www-form-urlencoded; charset=UTF-8"
},
{
"name": "X-Requested-With",
"value": "XMLHttpRequest"
},
{
"name": "Content-Length",
"value": "320"
},
{
"name": "Cookie",
"value": "visid_incap_1156372=***; _pk_id.7.32fa=***; _pk_ref.7.32fa=***; ASP.NET_SessionId=***; __RequestVerificationToken=***; BIGipServerMFT-Frontends=***; incap_ses_1051_1156372=***; _pk_ses.7.32fa=***; windID_1b5aa482-1126-4c17-a65f-dbac1e05cfb9=***; .AspNet.ApplicationCookie=***; family_Composition=***"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"cookies": [
{
"name": "visid_incap_1156372",
"value": "***"
},
{
"name": "_pk_id.7.32fa",
"value": "***"
},
{
"name": "_pk_ref.7.32fa",
"value": "***"
},
{
"name": "ASP.NET_SessionId",
"value": "***"
},
{
"name": "__RequestVerificationToken",
"value": "***"
},
{
"name": "BIGipServerMFT-Frontends",
"value": "***"
},
{
"name": "incap_ses_1051_1156372",
"value": "***"
},
{
"name": "_pk_ses.7.32fa",
"value": "***"
},
{
"name": "windID_1b5aa482-1126-4c17-a65f-dbac1e05cfb9",
"value": "***"
},
{
"name": ".AspNet.ApplicationCookie",
"value": "***"
},
{
"name": "family_Composition",
"value": "***"
}
],
"queryString": [],
"headersSize": 1717,
"postData": {
"mimeType": "application/x-www-form-urlencoded",
"params": [
{
"name": "key",
"value": "{val}"
}
],
"text": "key=val-url-encoded"
}
}
}, function (error, response, body) {
console.log(response.statusCode);//returns 302
});
非常感谢您的帮助使用浏览器调试器中的“网络”选项卡,可以准确查看从网页发送帖子时发送到服务器的内容(cookie、标题、URL、请求数据)。然后,在postman中完全复制它。如果没有postman拦截器,postman不会让我发送referer和Cookie头。我的目标是使用node发送requestSo,我的评论是有效的。使用浏览器中的“网络”选项卡查看浏览器正在发送的内容,并在node.js中发送该内容。我不知道你希望我们能帮你做什么。