首页 > 解决方案 > 通过节点提交表单,就像连接到站点一样

问题描述

我正在尝试创建一个自动化工具来提交表单,以便它可以检测响应随时间的变化。通常,要提交此表单,我会登录一个站点并提交表单。当尝试通过 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
});

帮助将不胜感激

标签: node.jsauthenticationloginhttpsrequest

解决方案


推荐阅读