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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация, HTTP и Java, казалось бы все просто, Авторизация, HTTP и Java 
:(
    Опции темы
izotope
Дата 8.5.2010, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет, есть следующий код, взятый с этого же форума и подогнанный "под себя":

Код

01    public void Login() {
02        String strURL = "http://123.ru/serv/login/";
03        HttpState initialState = new  HttpState();
04        HttpClient client = new HttpClient();
05        client.getParams().setParameter("http.useragent", "Client");
06        client.setState(initialState);
07        client.getParams().setCookiePolicy(CookiePolicy.DEFAULT);
08        client.getParams().setBooleanParameter(HttpClientParams.ALLOW_CIRCULAR_REDIRECTS,true);
09     
10        BufferedReader br = null;
11     
12        PostMethod method = new PostMethod(strURL);
13     
14        method.addParameter("login", jTextLogin.getText().toString());
15        method.addParameter("mode", "login");
16        method.addParameter("passwd", jTextPasswd.getText().toString());
17     
18        try{
19          int returnCode = client.executeMethod(method);
20          Cookie[] cookies = client.getState().getCookies();
21          System.out.println("Response status code: " + returnCode);
22          System.out.println("Present cookies: ");
23          for (int i = 0; i < cookies.length; i++) {
24            System.out.println(" - " + cookies[i].toExternalForm());
25          }
26     
27          if(returnCode == HttpStatus.SC_NOT_IMPLEMENTED) {
28            System.err.println("The Post method is not implemented by this URI");
29            // still consume the response body
30            method.getResponseBodyAsString();
31          } else {
32            br = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream()));
33            String readLine;
34            while(((readLine = br.readLine()) != null)) {
35              System.err.println(readLine);
36     
37              if (readLine.charAt(12) == '1') {
38                jTabbedPaneMain.setEnabledAt(1, true);
39                jPanelAuth.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), readLine.substring(21, readLine.indexOf("'", 21)),TitledBorder.TOP, TitledBorder.CENTER));
40                //java.lang.Thread.sleep(3000);
41                jTabbedPaneMain.setEnabledAt(0, false);
42                jTextLogin.enable(false);
43                jTextPasswd.enable(false);
44                jLabel1.enable(false);
45                jLabel2.enable(false);
46                jTextLogin.setBackground(Color.green);
47                jTextPasswd.setBackground(Color.green);
48                jButtonLogin.setText("Продолжить");
49              } else {
50                jPanelAuth.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), readLine.substring(21, readLine.indexOf("'", 21)),TitledBorder.TOP, TitledBorder.CENTER));
51                jTextLogin.setBackground(Color.red);
52                jTextPasswd.setBackground(Color.red);
53              }
54            }
55     
56            strURL = "http://www.123.ru/change/exchange/serv/flist/";
57            System.out.println("Target URL: " + strURL);
58     
59            initialState = new HttpState();
60            initialState.addCookies(cookies);
61            client.setState(initialState);
62            client.getParams().setCookiePolicy(CookiePolicy.DEFAULT);
63            client.getParams().setBooleanParameter(HttpClientParams.ALLOW_CIRCULAR_REDIRECTS,true);
64     
65            client.getParams().setParameter("part","0");
66            client.getParams().setParameter("type","0");
67            client.getParams().setParameter("fkey","0");
68            client.getParams().setParameter("sort","name");
69             
70            GetMethod httpget = new GetMethod(strURL);
71     
72            returnCode = client.executeMethod(httpget);
73            cookies = client.getState().getCookies();
74            httpget.getResponseBodyAsString();
75            System.out.println("Response status code: " + returnCode);
76            cookies = client.getState().getCookies();
77            System.out.println("Present cookies: ");
78            for (int i = 0; i < cookies.length; i++) {
79                System.out.println(" - " + cookies[i].getValue());
80            }
81            System.out.println(httpget.getResponseBodyAsString());
82            httpget.releaseConnection();
83          }
84        } catch (Exception e) {
85          System.err.println(e);
86        } finally {
87          method.releaseConnection();
88          if(br != null) try { br.close(); } catch (Exception fe) {}
89        }
90      }


Первый блок с ссылкой login отлично обрабатывает авторизацию, мы аторизованы! Ура! Но далее мы пытаемся получить список файлов, второй блок со ссылкой change/exchange, getResponseBodyAsString возвращает "" то есть пустоту, FireBug в Мозилле показал мне параметры и URL, я их интерпретировал. В чем может быть проблема? Куда копать? Заранее спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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