Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация вконтакте 
:(
    Опции темы
DoZENT
Дата 30.5.2009, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Привет всем! Избитая тема уже про авторизацию на vkontakte.ru, есть много готовых вариантов, но все они на pythone или, еще хуже, на perle (самый непонятный язык, который я видел). Как реализовать на джаве я так и не понял. Итак, вот что я уже сделал:
Код

    public String VKLogin(String pEmail, String pPassword, ArrayList<Cookie> pCookiesList){

        HttpClient http = new HttpClient ();
        PostMethod post = new PostMethod (ADDRESS_LOGIN);
        post.addParameter("op", "a_login_attempt");
        post.addParameter("email", pEmail);
        post.addParameter("pass", pPassword);
        post.addParameter("expire", "0");
        post.getParams().setContentCharset("CP1251");
        http.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

        try{
            
            int PostResult = http.executeMethod(post);
            if (PostResult == HttpStatus.SC_OK){
                 //Answer of server
                 String resp =  post.getResponseBodyAsString();
                 if (resp.indexOf("good", 0) < 0){
                     //authorization failed
                     return "";
                 }else{

                     //authorization passed saving cookies
                       for (int i=0; i<http.getState().getCookies().length; i++){
                            pCookiesList.add(http.getState().getCookies()[i]);
                        }

                      return ADDRESS_ID + resp.substring(4, resp.length());    
                 }

                 
            }
            else{
                
                System.out.print("Page is not found. Please try again later");
                return "";
            }

         }   
        catch (IOException e){
            System.out.print("Error while page downloading. Check internet connection");
            e.printStackTrace();
         return "";
        }
        finally{
            post.releaseConnection();
        }      
     
    }


Функция возвращает строку с ID пользователя вконтакте + набор кук (например, такие):
remixlang=0
remixchk=5
remixmid=23243243
remixemail=someemail%40mail.ru
remixpass=743d7561edb5b24e1bdd42652c9zf726
remixsid=d3937df631e2dd64561e8a7b50zceaa0xe171b24f28dad9f3e0ff58a4

Дальше что мне с ними сделать, чтобы зайти на мою страницу vkontakte.ru/id33548643 ?? Пытаюсь сделать так:
Код

    private String RequestPage (String pURL, ArrayList<Cookie> pCookiesList){

        HttpState state = new HttpState();
        HttpClient http = new HttpClient ();
        GetMethod get = new GetMethod (pURL);
        http.getParams().setContentCharset("UTF-8");
        //http.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
        get.getParams().setContentCharset("CP1251");
        try{
            for (int i=0; i<pCookiesList.size(); i++){
                state.addCookie(pCookiesList.get(i));
                System.out.println(pCookiesList.get(i));
             }

 
            http.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
            http.getParams().setParameter("Referer", "http://vkontakte.ru/id34234345");
            //http.getParams().USER_AGENT = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10";
            http.getParams().setParameter("Connection", "keep-alive");
            http.getParams().setParameter("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10");
            http.setState(state);
            http.executeMethod(get);
            printStream (get.getResponseBodyAsString()); //saving string to file
        }
        catch (IOException ex){
            ex.printStackTrace();
            return "";
        }
        finally{
            get.releaseConnection();
        }
        return "";
    }

На выходе получаю страницу авторизации, как будто авторизация не прошла..... 4 дня уже бьюсь, никто ничего не подскажет что делать? =)

Это сообщение отредактировал(а) DoZENT - 30.5.2009, 17:49


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.