Java 如何使用JSOUP发布表单登录?
我想登录到 下面是表单源Java 如何使用JSOUP发布表单登录?,java,android,jsoup,Java,Android,Jsoup,我想登录到 下面是表单源 <form id="login-form" action="/login" method="post" autocomplete="off" class="pure-form pure-form-stacked login-form"> <label> Username <input name="username" type="text" class="pure-input-1" placeholde
<form id="login-form" action="/login" method="post" autocomplete="off" class="pure-form pure-form-stacked login-form">
<label>
Username
<input name="username" type="text" class="pure-input-1" placeholder="Username" value="" required="" autofocus="">
</label>
<label>
Password
<input name="password" type="password" class="pure-input-1" placeholder="Password" value="" required="">
</label>
<button type="submit" class="pure-button pure-button-primary">Login</button>
</form>
但当我启动应用程序并执行此方法时,我的应用程序就会关闭。
我猜它没有正确登录,我不知道该怎么做才能让它正常工作
您可以使用此用户名和密码登录ID:保罗·金
密码:Dvjpp;[sddeptfdr,rdyrt1 它说这是由以下原因造成的:android.os.NetworkOnMainThreadException 请帮帮我。
谢谢用这些方法给下面的班级打电话
new AsyncCaller().execute();
private class AsyncCaller extends AsyncTask<Void, Void, String>
{
ProgressDialog pdLoading = new ProgressDialog(AsyncExample.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
//this method will be running on UI thread
pdLoading.setMessage("Loading...");
pdLoading.show();
}
@Override
protected String doInBackground(Void... params) {
String result= getString("your username","your password")
return result;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
pdLoading.dismiss();
Toast.make(context,result,Toas.LENGTH_SHORT).show();
}
}
}
newasyncCaller().execute();
私有类AsyncCaller扩展了AsyncTask
{
ProgressDialog pdLoading=新建ProgressDialog(AsyncExample.this);
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//此方法将在UI线程上运行
setMessage(“正在加载…”);
pdLoading.show();
}
@凌驾
受保护字符串doInBackground(无效…参数){
String result=getString(“您的用户名”、“密码”)
返回结果;
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
pdLoading.disclose();
Toast.make(上下文、结果、Toas.LENGTH_SHORT).show();
}
}
}
使用以下方法在课堂下调用
new AsyncCaller().execute();
private class AsyncCaller extends AsyncTask<Void, Void, String>
{
ProgressDialog pdLoading = new ProgressDialog(AsyncExample.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
//this method will be running on UI thread
pdLoading.setMessage("Loading...");
pdLoading.show();
}
@Override
protected String doInBackground(Void... params) {
String result= getString("your username","your password")
return result;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
pdLoading.dismiss();
Toast.make(context,result,Toas.LENGTH_SHORT).show();
}
}
}
newasyncCaller().execute();
私有类AsyncCaller扩展了AsyncTask
{
ProgressDialog pdLoading=新建ProgressDialog(AsyncExample.this);
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//此方法将在UI线程上运行
setMessage(“正在加载…”);
pdLoading.show();
}
@凌驾
受保护字符串doInBackground(无效…参数){
String result=getString(“您的用户名”、“密码”)
返回结果;
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
pdLoading.disclose();
Toast.make(上下文、结果、Toas.LENGTH_SHORT).show();
}
}
}
试过这个吗?是的,我试过了。它对meDid不起作用。你试过谷歌android.os.NetworkOnMainThreadException吗?这比在SO上发帖要容易得多,而且与登录过程无关。@TDG是的。。很抱歉。我以为是我的登录导致了问题。我试过了。它对meDid不起作用。你试过吗y到google android.os.NetworkOnMainThreadException?这比在SO上发布问题要容易得多,而且它与登录过程无关。@TDG是的。。很抱歉。我以为是我的登录导致了问题。我尝试了它,但它仍然给我同样的错误谢谢!AsyncTask修复了我的问题欢迎快乐编码:)和之前发布任何问题在google中搜索您的异常,如“android.os.NetworkOnMainThreadException+stackoverflow”。您可能会在不发布新问题的情况下得到答案。这有助于消除stackoverflow中的冗余。我尝试过,但仍然会出现相同的错误谢谢!AsyncTask修复了我的问题欢迎快乐编码:)在发布任何问题之前,在google中搜索您的异常,如“android.os.NetworkOnMainThreadException+stackoverflow”。您可以在不发布新问题的情况下获得答案。这有助于消除Stackoverflow中的冗余