Здравствуйте, я пытаюсь войти на свой университетский сайт через Jsoup, я заметил, что это сайт SSO, вот ссылка на страницу входа: https://idp.unito.it/idp/Authn/UserPassword
Проверяя html формы, которую я нашел, что имя пользователя называется: txt_username и пароль: j_password
Я пытаюсь использовать этот код, но я получаю страницу входа и я не удается войти в систему, возможно, произошла ошибка при получении правильных файлов cookie и их установке, но я не знаю, как их решить
public class MainActivity extends AppCompatActivity {
TextView textView;
String username="MYUSERNAME";
String password="MYPASSWORD";
Button btn;
ProgressDialog progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=findViewById(R.id.btn);
textView=findViewById(R.id.test);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new doInBackground().execute();
}
});
}
public class doInBackground extends AsyncTask<Void,Void,Void>{
String str="";
ProgressDialog dialog;
@Override
protected Void doInBackground(Void... voids){
try {
Connection.Response response =
Jsoup.connect("https://idp.unito.it/idp/Authn/UserPassword")
.data("txt_username",username,"j_password",password)
.ignoreContentType(true)
.method(Connection.Method.POST)
.execute();
Map<String, String> cookie=response.cookies();
Document document=Jsoup.connect("https://my.unito.it/")
.cookies(cookie)
.get();
str=document.text();
Log.d("login", "doInBackground"+document.text());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid){
super.onPostExecute(aVoid);
textView.setText(str);
}
@Override
protected void onPreExecute(){
super.onPreExecute();
dialog=new ProgressDialog(MainActivity.this);
dialog.setTitle("Login");
dialog.setMessage("......()......");
dialog.show();
}
}
Спасибо