node.js - 通过节点提交表单,就像连接到站点一样
问题描述
我正在尝试创建一个自动化工具来提交表单,以便它可以检测响应随时间的变化。通常,要提交此表单,我会登录一个站点并提交表单。当尝试通过 Postman 或我制作的小型节点应用程序发送完全相同的请求时,我得到状态 302(通过 firefox 调试器重新发送请求工作正常)。我什至尝试使用从浏览器导出的 HAR。这是我使用的代码:
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
});
帮助将不胜感激
解决方案
推荐阅读
- powershell - 此 csv 中的值未被编辑 - Powershell
- php - 此集合实例上不存在属性 [image_thumb_url]
- flutter - 如何在颤振中加载多个模型?
- python - 如何通过为元素添加前缀来使列表大小相同
- python - 如何向已将图书添加到收藏夹的用户发送错误
- java - 在Android App中为文本字段添加双边框
- django - 我如何在 django 中为特定登录用户显示特定页面
- javascript - 如何从 html (webview-ext) 启动事件并在 nativescript 中捕获它们?
- vue.js - 子对话框打开时关闭 Vuetify 菜单
- docker - Netflix Zuul 未通过 .Net Core 3.1 Web App - Identity Server 4 和 Nginx 的关联 Cookie