Java Android-Jsoup登录网站
有人能解释一下如何使用JSoup登录这个网站吗 我的代码目前(完全失败,我肯定我走错了方向):Java Android-Jsoup登录网站,java,android,jsoup,Java,Android,Jsoup,有人能解释一下如何使用JSoup登录这个网站吗 我的代码目前(完全失败,我肯定我走错了方向): 类插入扩展异步任务{ @凌驾 受保护的字符串doInBackground(字符串…参数){ 试一试{ Connection.Response res=Jsoup.connect(“https://ecampus.smu.ac.kr/login/index.php") .数据(“用户名”,“201490008”,“密码”,“*****”) .method(Connection.method.POST)
类插入扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…参数){
试一试{
Connection.Response res=Jsoup.connect(“https://ecampus.smu.ac.kr/login/index.php")
.数据(“用户名”,“201490008”,“密码”,“*****”)
.method(Connection.method.POST)
.execute();
Map loginCookies=res.cookies();
Document doc=Jsoup.connect(“http://ecampus.smu.ac.kr/“”.cookies(loginCookies.get();
元素=文件选择(“.course_name”);
arrayList.clear();
for(元素:元素){
add(element.text());
}
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
尝试使用类似的方法通过Jsoup发送POST请求并检索文档
首先:设置一个cookie管理器来处理所有cookie内容
CookieManager cm = new CookieManager();
CookieManager.setDefault(cm);
第二:为POST参数创建一个Map
HashMap<String, String> postMap = new HashMap<String, String>();
postMap.put("username", "xxxxxxxxxxx");
postMap.put("password", "xxxxxxxxxxxxx");
postMap.put("rememberusername", "on");
userAgent会让服务器认为它不是移动设备。这应该可以工作。你怎么知道该网站接受POST请求?我不知道我想是@cricket\u 007这个链接是我们univecity的链接,我想把我的应用程序连接到这个链接。2天前这个代码已经工作了,但今天它不工作。@cricket\u 007它不工作。@cricket\u 007ed接受POST请求,但对于需要考虑的小复选框,它还有一个名为
rememberName
的附加参数……而且很可能您还必须为请求设置附加的标题(如http://ecampus.smu.ac.kr/
asReferer
等)
HashMap<String, String> postMap = new HashMap<String, String>();
postMap.put("username", "xxxxxxxxxxx");
postMap.put("password", "xxxxxxxxxxxxx");
postMap.put("rememberusername", "on");
String userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36";
String referer = "http://ecampus.smu.ac.kr/";
Connection.Response res = Jsoup.connect("https://ecampus.smu.ac.kr/login/index.php")
.data(postMap)
.userAgent(userAgent)
.referrer(referer)
.method(Connection.Method.POST)
.execute();
Document doc = res.parse();