【问题标题】:Node.js: Sending form requests on websitesNode.js:在网站上发送表单请求
【发布时间】:2017-07-29 15:27:21
【问题描述】:

我正在尝试使用 Node.js 登录此页面:http://stomfak.ukim.edu.mk/login_student.php。我为此使用了请求外部模块,但无法使其按预期工作。到目前为止,这是我尝试过的:

var request = require('request');

request.post(
    'http://stomfak.ukim.edu.mk/login_student.php',
    { form: {
        korime: 'myEmail',
        lozinka: 'myPassword'
    } },
    function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body)
        }
    }
);

上面没有日志。

var request = require('request');

request.post(
    'http://stomfak.ukim.edu.mk/login_student.php',
    { form: {
        korime: 'myEmail',
        lozinka: 'myPassword',
        Submit: 'Најава'
    } },
    function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body)
        }
    }
);

我尝试了上面的方法,因为我看到 post 请求也接受了 Submit 参数,该参数始终是“Најава”的值。上面也没有日志。

var request = require('request');

request.post(
    'http://stomfak.ukim.edu.mk/login_student.php',
    { json: {
        korime: 'myEmail',
        lozinka: 'myPassword'
    } },
    function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body)
        }
    }
);

这只会记录包含表单的页面正文,即使我发送了正确的凭据。

对网站的语言感到抱歉,但我希望这不会成为问题。

【问题讨论】:

  • 我不确定您是否可以这样做,因为它不会根据您的请求触发事件。但是,如果您可以确定提交事件按钮的路由,您就可以将您的请求发送到该路由,绕过表单本身,只需发送正确的参数。

标签: javascript node.js forms request


【解决方案1】:

由于我不确定该网站需要什么,我建议您:

  • 使用inspect模式登录网站

  • 查看请求的标头以向当前标头添加更多信息。

  • 然后使用 Postman 发送不同的请求,看看哪个适合你

在邮递员中,还有一个代码链接可以生成不同语言的代码,在你的例子中是 nodejs。 让我知道这是否适合你

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 2015-09-20
    • 2020-06-13
    • 2021-09-10
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多