В рамках своей диссертации я создал «бота», который сканирует официальный форум курса «Программирование на C» и ищет часто задаваемые вопросы, чтобы опубликовать ответ.Я нахожусь на той части, что я должен смоделировать логин, чтобы иметь возможность опубликовать соответствующий ответ.Форма входа в систему выглядит следующим образом:
! - форма входа в систему - форма действия = "login.php? Do = login" метод = "post" onsubmit = "md5hash (vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)"> script type =" text / javascript "src =" clientscript / vbulletin_md5.js? v = 385 "> таблица cellpadding =" 0 "cellspacing =" 3 "border =" 0 "> tr> td class =" smallfont "style= "white-space: nowrap;"> νομα χρήστη td>
td class = "smallfont" nowrap = "nowrap"> ύυτόματη Σύνδεση / tr> tr> td class = "smallfont"> Κωδικός td> td> / tr> / table>
input type = "hidden" name = "s" value = "" /> input type = "hidden" name = "securitytoken" value = "guest" /> тип ввода= "hidden" name = "do" value = "login" /> тип ввода = "hidden" name = "vb_login_md5password" /> тип ввода = "hidden" name = "vb_login_md5password_utf" /> / form>! - / loginform ->
Я понял, что мне нужно md5 хэшировать пароль, но я не могу войти.Я использую метод post и подготавливаю контент, выполняя следующие действия:
content = "do=login&url=login.php" + "&vb_login_md5password=" + md5_pass+ "&vb_login_md5password_utf="+ md5_pass + "&s=&securitytoken=guest&vb_login_username=" + UserName + "&vb_login_password=" + PassWprd;
Затем отправляю тексты заявки следующим образом:
urlConnection = (HttpURLConnection)(new URL(targetUrl).openConnection());
// Specifying that we intend to use this connection for input
urlConnection.setDoInput(true);
// Specifying that we intend to use this connection for output
urlConnection.setDoOutput(true);
// Specifying the method of HTTP request which is POST
// throws ProtocolException
urlConnection.setRequestMethod("POST");
// Specifying the content type of our post
urlConnection.setRequestProperty("Content-Type", POST_CONTENT_TYPE);
urlConnection.setRequestProperty("Content-length",String.valueOf (content.length()));
// urlConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)");
// Prepare an output stream for writing data to the HTTP connection
// throws IOException
dataOutputStream = new DataOutputStream(urlConnection.getOutputStream());
dataOutputStream.writeBytes(content);
Тем не менее, я не могу войти в систему.Я верю, что у меня что-то не так в форме, которую я отправляю, но я не могу найти что.Буду признателен за любую помощь, так как я должен закончить программу в течение нескольких дней.