Java 无法使用jsoup登录到网站
我正在尝试登录。Java 无法使用jsoup登录到网站,java,android,jsoup,Java,Android,Jsoup,我正在尝试登录。 以下是我迄今为止尝试过的,但似乎不起作用: try{ Connection.Response login = Jsoup.connect("login_url").method(Connection.Method.GET).execute( Connection.Response doc = Jsoup.connect("https://ecampus.psgtech.ac.in/studzone/") .data("Tx
以下是我迄今为止尝试过的,但似乎不起作用:
try{
Connection.Response login = Jsoup.connect("login_url").method(Connection.Method.GET).execute(
Connection.Response doc = Jsoup.connect("https://ecampus.psgtech.ac.in/studzone/")
.data("Txtstudid","id")
.data("TxtPasswd","password")
.data("btnlogin","Login")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0")
.method(Connection.Method.POST).execute(); //doesn't seem to work.
Document docs=Jsoup.connect("https://ecampus.psgtech.ac.in/studzone/AttWfPercView.aspx/") //after login
.cookies(doc.cookies())
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0").get();
test=docs.title();
}catch (IOException e){
test=e.getMessage();
}
out.setText(docs.title());
我做错了什么
编辑1
最后,在TDG的帮助下,我发现了这个缺陷
对于寻求解决方案的用户,实际问题是您没有传递足够的数据来登录
步骤1:进入Chrome加载页面,然后,Options>Tools>Developer Tools
步骤2:在控制台类型中
$(“输入”)
这将返回表单中所需的所有输入
步骤3:像这样将数据附加到响应中
Jsoup.connect("login_url")
.data("username","user")
.data("password","password")
.data("btnlogin","Login")
.data("id_of_the_data_required","value")
.data("...and so on like this...)
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0")
.method(Connection.Method.POST).execute();
第4步:抓取网页的html代码,并确定是否必须使用POST或GET方法,以及建议使用userAgent的方法
步骤5:一旦您发现登录事件成功。使用响应名称。cookies()转到页面中的其他URL
希望这有帮助。Q:为什么在
get
请求中发送“btnlogin”作为参数?答:因为您已经用浏览器的开发工具检查了post
请求,并对其进行了锯切。问:那么为什么不发送所有其他参数,比如uu EVENTTARGET、u EVENTVALIDATION等等?但是必须随u EVENTTARGET和u EVENTVALIDATION一起传递的值是什么,这正是我所要做的。你可以在第一个get
请求的响应中找到它们。我对jsoup不太熟悉。那么,你能帮助代码找到它们吗?看这里,它非常相似-Q:为什么在get
请求中发送“btnlogin”作为参数?答:因为您已经用浏览器的开发工具检查了post
请求,并对其进行了锯切。问:那么为什么不发送所有其他参数,比如uu EVENTTARGET、u EVENTVALIDATION等等?但是必须随u EVENTTARGET和u EVENTVALIDATION一起传递的值是什么,这正是我所要做的。你可以在第一个get
请求的响应中找到它们。我对jsoup不太熟悉。那么,你能帮我用代码找到它们吗?看这里,它非常相似-