我目前正在为我的学校网站做一个android网站垃圾项目。
我尝试使用jsoup检查登录凭据,并检查网页是否包含某种错误消息。当我在androidstudio中使用仿真器时,以及在我将应用程序上传到自己的设备后的前10分钟,这一切都非常好,但是突然我得到了一个java.net.sockettimeoutexception。
java.net.sockettimeoutexception:30000ms后无法连接到[学校url]
我从未在模拟器上收到超时消息。
这是我的密码。网络交互在executor服务上运行,我使用callable返回状态
Connection.Response loginForm = Jsoup.connect(LOGIN_FORM_URL)
.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0")
.method(Connection.Method.GET)
.timeout(30*1000)
.execute();
Document loginPage = loginForm.parse();
HashMap<String, String> cookies = new HashMap<>(loginForm.cookies());
String authToken = loginPage.select("div.mdl-cell:nth-child(3) > input:nth-child(3)")
.first()
.attr("value");
HashMap<String, String> formData = new HashMap<>();
formData.put("login", AES.decrypt(username, LoginActivity.usernameKey));
formData.put("passwort", AES.decrypt(password, LoginActivity.passwordKey));
formData.put("loginhash", authToken);
Connection.Response homePage = Jsoup.connect(LOGIN_ACTION_URL)
.cookies(cookies)
.data(formData)
.method(Connection.Method.POST)
.execute();
Document doc = homePage.parse();
Log.d("log", doc.select("div.mdl-cell:nth-child(4)").get(0).text());
if (doc.select("div.mdl-cell:nth-child(4)").get(0).text().contains("Wichtige Dokumente")) {
return LoginActivity.LOGIN_SUCCESSFUL;
} else {
return LoginActivity.LOGIN_FAILED;
}
有人知道我做错了什么吗?它在模拟器上运行,任何时候都没有任何问题。
错误发生在第一个。execute()
暂无答案!
目前还没有任何答案,快来回答吧!