Я пытаюсь войти в свой веб-сайт колледжа, используя jsoup, используя следующий код:Вход на веб-сайт с jsoup
public class captcha {
public Map cookies;
private String regno = "####"; //my regno
private String passwd = "####"; //my pass
public HashMap<String,String> downloadCaptcha()throws Exception {
Connection.Response response = Jsoup.connect("https://academicscc.vit.ac.in/student/stud_login.asp")
.timeout(300000)
.userAgent("Mozilla/5.0")
.method(Connection.Method.GET).execute();
cookies = response.cookies();
Document doc = response.parse();
Elements fields = doc.select("form input");
HashMap<String,String> formFields = new HashMap<String, String>();
for (Element field : fields){
formFields.put(field.attr("name"), field.attr("value"));
}
Connection.Response resultImageResponse = Jsoup.connect("https://academicscc.vit.ac.in/student/captcha.asp")
.cookies(cookies)
.ignoreContentType(true)
.method(Connection.Method.GET).timeout(30000).execute();
cookies.putAll(resultImageResponse.cookies());
FileOutputStream out = (new FileOutputStream(new java.io.File("abc.jpg")));
out.write(resultImageResponse.bodyAsBytes());
out.close();
System.out.println("Captcha Fetched");
//formFields.remove("message");
formFields.values().remove("Forgot Password ?");
System.out.println(formFields);
return formFields;
}
public void getData(HashMap<String, String> formFields) throws Exception{
Connection conn = Jsoup.connect("https://academicscc.vit.ac.in/student/stud_login.asp")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0")
.cookies(cookies)
.timeout(0)
.data(formFields)
.method(Connection.Method.POST);
Connection.Response response = conn.execute();
cookies = response.cookies();
System.out.println(response.cookies());
Document doc= response.parse();
FileWriter fr = new FileWriter("response.html");
PrintWriter pw= new PrintWriter(fr);
pw.println(doc.toString());
System.out.println(doc.toString());
pw.close();
fr.close();
}
private void run() throws Exception, IOException {
HashMap<String, String> formFields = downloadCaptcha();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String vrfcd = br.readLine();
formFields.put("regno", regno);
formFields.put("passwd", passwd);
formFields.put("vrfcd", vrfcd);
System.out.println(formFields);
getData(formFields);
}
public static void main(String[] args) throws Exception {
captcha main = new captcha();
main.run();
}
}
я капчу и получить печенье. Затем я получаю поля формы. Затем я вводим captcha и устанавливаю его значение в поля формы в дополнение к reg no и password. Затем я подключаюсь и получаю ответ. Проблема в том, что я возвращаю страницу входа в качестве ответа.
Любая помощь приветствуется :)
EDIT: При входе в хромом я получить REQUEST COOKIES
SESSIONIDSGASBSQA = DKCNGAHAAGPJILOAHBGEPDHO
_ga =GA1.3.1284394013.1479732373
logstudregno=
В то время как выходной код имеет запросить печенье в
{logstudregno=, ASPSESSIONIDSGASBSQA=JODNGAHAIIGMCJALLNMOHKMG}
У вас есть другое поле под названием «сообщение», которое вы игнорируете. – TDG
Я проверил активность сети в хроме при входе в систему и получил данные формы. _message: _ _regno: #### (рег мой) _ _passwd: #### (мой пропуск) _ _vrfcd: FRH6B7_ Как вы можете видеть поле сообщения пуст. – TheUltimateQuest
Это не значит, что вы можете его игнорировать. – TDG