HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Помогите пожалуста с Java SE
  #1  
Старый 23.02.2010, 11:34
-Girt@b_
Новичок
Регистрация: 16.02.2010
Сообщений: 9
Провел на форуме:
13952

Репутация: 0
По умолчанию Помогите пожалуста с Java SE

Пишу программу для изменения пароля от учетной записи ICQ. Проблема с коннектом на сервер... вот исходничек коннекта к учетной записи...

URL urlLogin = new URL("https://www.icq.com/karma/login_page.php");
URLConnection loginConnection = urlLogin.openConnection();
loginConnection.setDoInput(true);
loginConnection.setDoOutput(true);
logTextPane.setText(logTextPane.getText() + "Connecting to icq.com... OK\n");
PrintWriter out = new PrintWriter(loginConnection.getOutputStream());
out.print("uin_email=" + URLEncoder.encode(icqSNField.getText()) + "&password=" + URLEncoder.encode(passwordField.getText()));
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(loginConnection.getInputStream() ));
StringBuffer respponse = new StringBuffer();
String line;
while((line = in.readLine()) != null){
respponse.append(line + "\n");
}
System.out.println(respponse.toString());
in.close();

По ответу параметры логина и пароля вроде бы передаются, но не чего не происходит
Помогите пожалуйста мне сегодня проект этот надо отослать на проверку.

Последний раз редактировалось -Girt@b_; 23.02.2010 в 11:57..
 
Ответить с цитированием

  #2  
Старый 23.02.2010, 14:23
-Girt@b_
Новичок
Регистрация: 16.02.2010
Сообщений: 9
Провел на форуме:
13952

Репутация: 0
По умолчанию

Блин ну неужели никто не знает как отсылать POST запросы в Java SE???
 
Ответить с цитированием

  #3  
Старый 23.02.2010, 14:53
SpiderWEB
Новичок
Регистрация: 21.12.2009
Сообщений: 8
Провел на форуме:
519007

Репутация: 0
По умолчанию

Попробуй вместо URLConnection HttpsURLConnection.
У него есть метод setRequestMethod("POST").
И еще мне кажется URLEncoder ты неправильно используешь...
 
Ответить с цитированием

  #4  
Старый 23.02.2010, 15:09
-Girt@b_
Новичок
Регистрация: 16.02.2010
Сообщений: 9
Провел на форуме:
13952

Репутация: 0
По умолчанию

4-3"><input type="text" name="uin_email" value="" class="d1-4-input" onkeydown="uin_field_change()"></div>
<div class="d1-4-4"><input type="password" name="password" class="d1-4-input" maxlength="32"></div>

интересно каким макаром тут может получаться пароль??? и как его передать ПОСТом??
 
Ответить с цитированием

  #5  
Старый 23.02.2010, 15:15
SpiderWEB
Новичок
Регистрация: 21.12.2009
Сообщений: 8
Провел на форуме:
519007

Репутация: 0
По умолчанию

ха.... слишком мало ты смотришь.
Код:
<form name="login" id="login_frm" action="https://www.icq.com/karma/login.php" method="post" onsubmit="return check();">
	<div class="d1-3">Чтобы продолжить, пожалуйста, войдите в систему:</div>
		<div class="d1-4">
			<input type="hidden" name="dest" value="http://www.icq.com">
			<input type="hidden" name="service" value="30">
			<input type="hidden" name="icq_ln" value="6569E408CBECB37FC2FE44A99719A0BE8AA9C1067A59D325DF85095EE04C981F">
			<div class="d1-4-1">Номер ICQ или E-mail</div>
			<div class="d1-4-2">Пароль ICQ</div>
			<div class="d1-4-3"><input type="text" name="uin_email" value="" class="d1-4-input" onkeydown="uin_field_change()"></div>
			<div class="d1-4-4"><input type="password" name="password" class="d1-4-input" maxlength="32"></div>
			<div class="d1-4-5">
					<div>
						<div class="but-3" name="next" title="Войти" onclick="submit_login();">
							<img src="img/icon_l.gif" width="20" height="29" alt="">
						</div>
						<div class="but-1" name="next_btn" id="next_btn" title="Войти" onclick="submit_login();">
							<div>Войти</div>
						</div>
						<div class="but-2" name="next" title="Войти">
							<input type="image" src="img/corner_r.gif" width="6" height="29" alt="">
						</div>
					</div>
					
				</div>
				<div class="d1-4-6">
					<input type="checkbox" class="d1-4-chk" id="rem" name="rem" value="1"><span class="d1-4-rem" onclick="remember_me_check()">&nbsp;Запомнить меня</span>
					&nbsp;<img src="img/info.gif" title="Справка" class="d1-4-img" alt="" border="0" width="14" height="14" onclick="window.open('http://www.icq.com/legal/legal_popup_message_ru.html',null,'height=200,width=600,status=no,toolbar=no,menubar=no,location=no,resizable=no')">
				</div>
		</div>
		</form>
все инпуты что есть в форме нужно отправлять, а не только логин пароль.
 
Ответить с цитированием

  #6  
Старый 23.02.2010, 15:29
-Girt@b_
Новичок
Регистрация: 16.02.2010
Сообщений: 9
Провел на форуме:
13952

Репутация: 0
По умолчанию

Я видел этот код... наизусть его уже знаю. там в общем передается шесть параметров:
uin_email - логин
password - пароль, как он передается я хз...
dest - http://www.icq.com/support/change_password/?icid=nav_pw КОНСТАНТА
service - 30 КОНСТАНТА
icq_ln - что сюда передовать я не много не могу понять... по началу думал КУКС, но нет...
rem - 1 КОНСТАНТ если не надо запоминать данные
передаю все параметры... глухо

Последний раз редактировалось -Girt@b_; 23.02.2010 в 15:31..
 
Ответить с цитированием

  #7  
Старый 23.02.2010, 15:34
SpiderWEB
Новичок
Регистрация: 21.12.2009
Сообщений: 8
Провел на форуме:
519007

Репутация: 0
По умолчанию

Код:
<input type="hidden" name="icq_ln" value="6569E408CBECB37FC2FE44A99719A0BE8AA9C1067A59D325DF  85095EE04C981F">
вот то что в value, то и надо передавать. А для этого сначала тебе нужно в гет запросе получить html код страницы, выдернуть оттуда это валью и слать пост запрос.
 
Ответить с цитированием

  #8  
Старый 23.02.2010, 16:50
-Girt@b_
Новичок
Регистрация: 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();
   }
Не могу считать страницу изначально в одном коннекте... выбивает исключение Если два коннекта, то значения разные
Код считывания не вставлял.

Пробовал скрипт для подключения к КОНТАКТУ - все норм вроде...
 
Ответить с цитированием

  #9  
Старый 23.02.2010, 15:37
-Girt@b_
Новичок
Регистрация: 16.02.2010
Сообщений: 9
Провел на форуме:
13952

Репутация: 0
По умолчанию

угу... ок попробую. а что касается пароля... как его передавать? точно также?
 
Ответить с цитированием

  #10  
Старый 23.02.2010, 15:43
SpiderWEB
Новичок
Регистрация: 21.12.2009
Сообщений: 8
Провел на форуме:
519007

Репутация: 0
По умолчанию

да
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.