java登录网站_Java:使用Jsoup登录网站

首先让我指出,我对编程很新,所以如果我遗漏了一些明显的东西,我很抱歉.

我正在尝试编写一个程序,让您登录到this website

但我无法弄清楚如何将自己的字符串输入到电子邮件和密码字段.我也不太清楚如何检查登录是否通过……

到目前为止这是我的代码:

public static void main(String[] args) throws Exception {

String loginURL = "https://www.skanetrafiken.se/inloggning?ReturnUrl=%2fmitt-konto%2fse-saldo-och-ladda-kort%2f"; // URL of the login page

String accountURL = "https://www.skanetrafiken.se/mitt-konto/se-saldo-och-ladda-kort/"; // The URL you get to after successfully logging in

Document res = Jsoup

.connect(loginURL)

.data("loginInputModel.Email", "myEmail@email.com") //Not sure if these are the correct values to be changed or if this even changes them

.data("loginInputModel.Password", "myPassword")

.post();

System.out.println(res); // What should be printed to check to see if it worked?

}

它类似于我见过的很多例子,但它似乎不起作用……

最佳答案 对于支持HTTP基本访问身份验证的站点,您可以通过在请求中发送Authorization标头来访问任何页面.您的网站支持它,代码可以跟随访问帐户页面:

import java.io.IOException;

import java.util.Map;

import org.jsoup.Connection.Method;

import org.jsoup.Connection.Response;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

public class Test {

public static void main(String[] args) throws IOException {

// We need run initial request to obtain RequestVerificationToken

String initialURL = "https://www.skanetrafiken.se/inloggning";

Document doc = Jsoup

.connect(initialURL)

.get();

String requestVerificationToken = doc.select("input[name=__RequestVerificationToken]").get(0).val();

// Do login (all headers and more important all form fields should be populated)

String loginURL = "https://www.skanetrafiken.se/inloggning/LoginPost/";

Response res = Jsoup.connect(loginURL)

.header("Accept", "*/*")

.header("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")

.header("Origin", "https://www.skanetrafiken.se")

.header("X-Requested-With", "XMLHttpRequest")

.header("Referer", "https://www.skanetrafiken.se/inloggning")

.data("__RequestVerificationToken", requestVerificationToken)

.data("loginInputModel.ReturnUrl", "")

.data("loginInputModel.Role", "Private")

.data("loginInputModel.Email", "")

.data("loginInputModel.Password", "")

.data("X-Requested-With", "XMLHttpRequest")

.userAgent("Mozilla/5.0")

.ignoreContentType(true)

.method(Method.POST)

.execute();

// Keep logged in (store cookies for next calls)

Map cookies = res.cookies();

// Request a desired page

String accountURL = "https://www.skanetrafiken.se/mitt-konto/se-saldo-och-ladda-kort/";

Document doc2 = Jsoup

.connect(accountURL)

.cookies(cookies)

.get();

// Work with the doc

System.out.println(doc2);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值