如何使用NodeJS模拟检票口POST请求?

时间:2018-11-12 02:38:41

标签: javascript node.js wicket

概述

最近,我一直在尝试使用NodeJS模拟小门POST请求。

也就是说,通过在当前网页中上传表单(例如 site 1 ),我希望nodeJS将表单数据发送到另一个站点< / wick>(例如 site 2 ),它是使用wicket构建的,并将 site 2 的html正文返回到 site 1 的服务器(即nodeJS)

资源

我用来测试的 site 2 来自github:
https://github.com/bitstorm/Wicket-tutorial-examples/tree/wicket-6.x
请注意,正在使用 wicket 6.x (实际上我要6.12.0)。

在我的计算机上,它正在localhost:8080上运行

我拥有的html是:

<body ng-app="App" ng-controller="Controller">
    username: <input type='text' ng-model="User.name"><br>
    password: <input type='text' ng-model="User.pass"><br>
    <button ng-click="login(User)">Submit</button>
</body>

我拥有的AngularJS是:

var commodity_app = angular.module('App', []);

commodity_app.controller('Controller', function($scope, $http, $window){
    $scope.User = {name: "", pass: ""};

    $scope.login = function(User){
        $http.post("/login", User).then(function(response){
            alert(response.body);
        }, function(response){
            alert("Error");
        });
    };
});

问题

这是NodeJS的一部分,我希望它模拟POST到wicket并返回wicket将其重定向到的html正文:

var express = require('express');
var request = require('request');
var router = express.Router();

router.post("/login", function(req, res){
    console.log(req.body);
    var url = 'http://localhost:8080/wicket/bookmarkable/org.wicketTutorial.SignInPage?-1.IFormSubmitListener-form';
    var bodyString = "form1_hf_0=&username=wicketer&password=wicketer";
    var forms = {"form1_hf_0": '',"username": "wicketer", "password" : 'wicketer'}
    var header =   {"Content-Length": "47",
                    "Content-Type": "application/x-www-form-urlencoded",
                }
    request.post({url:url, followAllRedirects: true, form: bodyString, headers: header}, function(error, response, body){
        console.log(response.statusCode);
        console.log(response.body);
        res.send({msg: ""});
    });

});

module.exports = router;

我尝试使用bodyformformData发送数据,但是它不起作用。

有人可以帮我解决这个问题吗?

0 个答案:

没有答案