简体   繁体   English

通过JSoup使用Post登录网站

[英]Logging into site with Post via JSoup

I'm attempting to log into https://www.wheeloffortune.com/account via JSoup. 我正在尝试通过JSoup登录https://www.wheeloffortune.com/account Here is what I believe is only post-related html I need: 这是我认为只有我需要的与帖子相关的html:

<form action="/account/Login" id="form-login-page" method="post">
<fieldset id="registration-login-modal-fieldset" class="standard-info">
<label for="email">Email<span class="notification">*</span></label>
<input autocomplete="off" data-required="true" data-val="true" data-val-regex="A valid email address is required." data-val-regex-pattern="^([0-9a-zA-Z]+[-._&#39;+&amp;])*[_0-9a-zA-Z]+@([-_0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$" data-val-required="Email is required" id="LoginEmail" maxlength="100" name="LoginEmail" type="text" value="" />

<label for="password">Password<span class="notification">*</span></label>
<input autocomplete="off" data-required="true" data-val="true" data-val-required="Password is required" id="LoginPassword" maxlength="20" name="LoginPassword" type="password" />
<a id="modal-forgot-password-link" href="/modal-pages/ForgotPasswordModal" class="js-modal">I forgot my password</a>

<div id="registration-modal-legal-checkbox">
<div class="form-error-modal-checkbox">
<input data-val="true" data-val-required="The RememberMe field is required." id="RememberMe" name="RememberMe" type="checkbox" value="true" /><input name="RememberMe" type="hidden" value="false" />
</div>
<label for="RememberMe" class="label-right preference-modal-options">Remember Me</label>
<input id="ReturnUrl" name="ReturnUrl" type="hidden" value="/" />
</div>
</fieldset>

<input id="submit-login-modal-form" type="image" src="/content/img/images/modal/register/btn-login.png" value="login" class="submit">
</form> 

And here is my related Java code: 这是我相关的Java代码:

Connection.Response loginForm = Jsoup.connect(this.site)
            .userAgent(this.userAgent)
            .method(Connection.Method.GET)
            .execute();

Document document = Jsoup.connect(this.site)
            .userAgent(this.userAgent)
            .data("LoginEmail", <email>)
            .data("LoginPassword", <password>)
            .cookies(loginForm.cookies())
            .post();

System.out.println(document);

My document connection retrieves the site; 我的文档连接检索该站点; but it still has me logged out. 但仍然让我注销了。 What am I doing wrong with my requests? 我的要求出了什么问题?

Try also including the "Remember Me" and "Return Url" input, I've looked at the login request being made by the website and it seems like it is sending 4 input fields: username , password , remember me and return url . 尝试还包括“ Remember Me”和“ Return Url”输入,我已经查看了网站发出的登录请求,似乎它正在发送4个输入字段: 用户名密码记住我返回url So try the following code: 因此,请尝试以下代码:

Connection.Response loginForm = Jsoup.connect(this.site)
        .userAgent(this.userAgent)
        .method(Connection.Method.GET)
        .execute();

Document document = Jsoup.connect(this.site)
        .userAgent(this.userAgent)
        .data("LoginEmail", <email>)
        .data("LoginPassword", <password>)
        .data("RememberMe", "false")
        .data("ReturnUrl", "/")
        .cookies(loginForm.cookies())
        .post();

System.out.println(document);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM