Java:在远程网站上发布登录请求,在登录按钮上使用javascript

Java:在远程网站上发布登录请求,在登录按钮上使用javascript,java,request,xmlhttprequest,unirest,Java,Request,Xmlhttprequest,Unirest,我正在使用Java,尝试登录远程网页 我可以通过Chrome开发者工具看到,该站点正在使用带有XMLHttpRequest标题的POST: 发布[站点]/Services/UserService.asmx/Authenticate 来源:[站点] X-DevTools-Emulate-Network-Conditions-Client-Id:86825bab-dcb4-4bef-885e-5350c11fe43b X-request-With:XMLHttpRequest 用户代理:Mozill

我正在使用Java,尝试登录远程网页

我可以通过Chrome开发者工具看到,该站点正在使用带有XMLHttpRequest标题的POST:

发布[站点]/Services/UserService.asmx/Authenticate
来源:[站点]
X-DevTools-Emulate-Network-Conditions-Client-Id:86825bab-dcb4-4bef-885e-5350c11fe43b
X-request-With:XMLHttpRequest
用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/57.0.2987.133 Safari/537.36
内容类型:application/json;字符集=UTF-8
接受:/
推荐人:[站点]
接受编码:gzip,deflate,br
接受语言:da-DK,da;q=0.8,在美国;q=0.6,en;q=0.4
Cookie:ASP.NET_SessionId=xgea1elpr3dmrgbsotcghu5k_ga=GA1.2.632065975.1472

如果我查看站点的源代码,我可以看到他们正在使用提交按钮上的javascript.onClick()。 下面是处理用户名和密码的javascript部分的代码片段(位于.onClick()中):

我的问题是,我是否可以使用Unirest(或Java中的类似工具)来“模拟”上述Javascript,以便登录页面? 如果是,怎么做
或者有没有一种“旁路”的方法


我熟悉Selenium和PhantomJS,它们可能会解决这个问题,但在这种情况下,这些方法是不可能使用的

我找到了解决方案——当然这是一个非常简单实用的解决方案

我必须在Chrome开发者工具中的“保留日志”上打勾,以执行重写实际post数据的重定向调用。在此之后,我可以看到post数据,并可以使用Unirest复制它

    ...
    var service = new Website.Services.UserService();
                    service.Authenticate(email, password, rememberMe, referrer, 

function(result) {

                    if (!result.Authenticated) {
                        var message = result.Message || "Det var ikke muligt at logge ind med din e-mail og kode";

                        button.closest("fieldset").find(".error-text").text(message).show();
                        return;
                    } else {
                        // Redirect to my page
                        location.href = result.Url;
                    }

                }, function() {

                    alert("Det var ikke muligt at få forbindelse til serveren, opdater siden og prøv igen");

                }, true);
...