ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

23.02.2010, 16:50
|
|
Новичок
Регистрация: 16.02.2010
Сообщений: 9
Провел на форуме: 13952
Репутация:
0
|
|
Сообщение от SpiderWEB
Код:
<input type="hidden" name="icq_ln" value="6569E408CBECB37FC2FE44A99719A0BE8AA9C1067A59D325DF 85095EE04C981F">
вот то что в value, то и надо передавать. А для этого сначала тебе нужно в гет запросе получить html код страницы, выдернуть оттуда это валью и слать пост запрос.
Код:
public static void main(String[] args) {
Start testPostRequest = new Start();
//создаём лист параметров для запроса
java.util.List<String[]> params = new LinkedList<String[]>();
params.add(new String[]{"uin_email", "***"});
params.add(new String[]{"password", "***"});
params.add(new String[]{"dest", "http://www.icq.com/support/change_password/?icid=nav_pw"});
params.add(new String[]{"service", "30"});
params.add(new String[]{"icq_ln", "9BCB804B320E26F8D19B640A8A70950B52043FB82B44DF2CE5CDF3E2D1284D9D"});
params.add(new String[]{"rem", "1"});
//будем использовать прокси
testPostRequest.useProxy = true;
testPostRequest.proxyAdress = "221.238.17.245";
testPostRequest.proxyPort = 8080;
try {
//отправляем запрос на страницу логина http://vkontakte.ru
System.out.println(testPostRequest.sendPostRequest("https://www.icq.com/karma/login_page.php", params));
} catch (IOException e) {
e.printStackTrace();
}
}
Код функции отправки данных
Код:
private String sendPostRequest(String urlLocation, java.util.List parameters) throws IOException {
StringBuffer result = new StringBuffer();
HttpURLConnection connection = getConnection(urlLocation);
System.out.println("Соединение с " + urlLocation + " установлено.");
connection.setRequestMethod("POST");
connection.setRequestProperty("Referer", urlLocation);
connection.setRequestProperty("Cookie", "your cookies may be here");
String data = "";
if (parameters != null) {
for (int i = 0; i < parameters.size(); i++) {
String param[] = (String[]) parameters.get(i);
if (i != 0) {
data = data + "&";
}
data = data + param[0] + "=" + URLEncoder.encode(param[1], "UTF-8");
}
}
if (parameters != null && data.length() != 0) {
connection.setRequestProperty("Content-Length", Integer.toString(data.length()));
}
connection.connect();
if (parameters != null && data.length() != 0) {
System.out.println("Отправка данных..");
PrintWriter out = new PrintWriter(connection.getOutputStream());
out.write(data);
out.flush();
System.out.println("Получение ответа от сервера..");
}
result.append("response code: ").append(connection.getResponseCode()).append("\n");
result.append("response cookies: ").append(getResponseCookies(connection)).append("\n");
result.append("response page source: ").append("\n");
BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
result.append(line).append("\n");
}
connection.disconnect();
return result.toString();
}
Не могу считать страницу изначально в одном коннекте... выбивает исключение  Если два коннекта, то значения разные 
Код считывания не вставлял.
Пробовал скрипт для подключения к КОНТАКТУ - все норм вроде...
|
|
|

23.02.2010, 17:29
|
|
Новичок
Регистрация: 21.12.2009
Сообщений: 8
Провел на форуме: 519007
Репутация:
0
|
|
в одном коннекте и не получится. для каждого запроса свой коннект. и почему http а не https. И судя по тому что ты привел у тебя шлется только пост... а icq_ln ты руками вписываешь, а не считываешь со страницы.
|
|
|

23.02.2010, 18:01
|
|
Новичок
Регистрация: 16.02.2010
Сообщений: 9
Провел на форуме: 13952
Репутация:
0
|
|
Сообщение от SpiderWEB
в одном коннекте и не получится. для каждого запроса свой коннект. и почему http а не https. И судя по тому что ты привел у тебя шлется только пост... а icq_ln ты руками вписываешь, а не считываешь со страницы.
Я помоему написал что код считывания не вставлял ибо при двойном коннекте значения совершенно разные получаются.
|
|
|

23.02.2010, 20:31
|
|
Новичок
Регистрация: 16.02.2010
Сообщений: 9
Провел на форуме: 13952
Репутация:
0
|
|
Как я могу предположить тут единственное решение - открыть коннект, пословно про сканировать содержимое исходного текста страницы, поиском найти данное значение, сохранить его в переменную и тут же передать пост запросом...
Может у кого то др вариант есть?
|
|
|

23.02.2010, 20:56
|
|
Новичок
Регистрация: 21.12.2009
Сообщений: 8
Провел на форуме: 519007
Репутация:
0
|
|
блин я в 7 посте тебе это и написал. Тут других вариантов нет. Как ты в браузере сначала заходишь на страницу, потом заполняешь поля форм и отправляешь, так же и в программе. И добавь еще заголовок User-Agent, браузер какой-нибуть. А то по умолчанию ява туда свою версию пишет и может сервак фильтрует их.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|