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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> URL соеденение 
:(
    Опции темы
Noviy
Дата 8.4.2008, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как прочитал, URL создаётся так:
1) Вызвать метод OpenConnection();
2) Указать свойства запроса
3) Установить соеденение с удалённым ресурсом
4) После подключения к серверу доступны поля заголовка - обрабатываем
5) Имеем доступ к данным getInputStream();

При нажатии кнопки, должно устанавливаться соеденение по указаному адресу. Решил я это реализовать через обработку событий кнопки. 
Код

//Обработчик для кнопки
        buttonGO.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent event)
            {
                //urlName.setText("http://www.seti.kr.ua");
                URL url = new URL("http://www.seti.kr.ua");
                URLConnection connection = url.openConnection(); //1
                connection.setDoInput(true);                                    //2
                connection.connect();                                                //3
                
            }
        });    

Скажем соеденяться оно по идее должно, но в практике нет (ошибки ) :(

Вылаживаю исходник - помогите пожалуйста smile

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  JBros.java 3,42 Kb
PM MAIL ICQ   Вверх
Kangaroo
Дата 9.4.2008, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

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



Цитата(Noviy @  8.4.2008,  23:41 Найти цитируемый пост)
Скажем соеденяться оно по идее должно, но в практике нет (ошибки ) :(

какие ошибки???


--------------------
Lost....
PM MAIL MSN   Вверх
COVD
Дата 9.4.2008, 06:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

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



Noviy, запрос на сервер отправляется в момент перехода к чтению ответа сервера (пункт 5 вашего списка). Про это двумя постами ниже здесь

Это сообщение отредактировал(а) COVD - 9.4.2008, 06:32
PM MAIL   Вверх
Noviy
Дата 9.4.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо, с  запросом оказывается всё просто. Теперь чтение информации. 
Код

BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine = null;
          while ((inputLine = in.readLine()) != null) {
          System.out.println("inputLine = "+inputLine );
        }
                }

                catch (Exception e) {}
                
            }


Хотел проще сделать, но матюкается :(  Почему?
Код

InputStream in = new conn.getInputStream()
while ((inputLine = in.readLine()) != null) {
          System.out.println("inputLine = "+inputLine );
        }
                }

                catch (Exception e) {}
                
            }

Если я правильно понял, BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); - это чтение из буфера?
PM MAIL ICQ   Вверх
LSD
Дата 10.4.2008, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(Noviy @  9.4.2008,  18:37 Найти цитируемый пост)
Если я правильно понял, BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); - это чтение из буфера?

Нет, это чтение с буферизацией и только. А вообще существует Java doc, где для каждого класса есть описание.


Цитата(Noviy @  9.4.2008,  18:37 Найти цитируемый пост)
Хотел проще сделать, но матюкается :(  Почему?

По твоему все должны протелепатить, что там у тебя за ошибка?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Noviy
Дата 11.4.2008, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Разобрался smile .Теперь осталось вывести содержимое. 
Код

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class JBros 
{
// Главное окно
    public static void main (String[] args)
        {
            Window frame = new Window();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        }
        
}

class Window extends JFrame 
{

    public Window()
    {
    // Определение размеров экрана
    Toolkit kit = Toolkit.getDefaultToolkit();
    Dimension screenSize = kit.getScreenSize();
    int screenHeight = screenSize.height;
    int screenWidth = screenSize.width;
    
    //=======================================================
    
    //Размещение фрейма по центру экрана
    
    setSize (screenWidth / 2, screenHeight / 2);
    setLocation (screenWidth / 4, screenHeight / 4);
    
    //========================================================
    
    //Установка пиктограммы и заголовка окна
    
        setTitle("JBros");
        Image img = kit.getImage("icon.gif");
        setIconImage(img);
        
    //=======================================================    
        
        // Меню
        JMenu fileMenu = new JMenu("File");
        //Подменю с обработкой событий        
        fileMenu.add(new AbstractAction("Close")
        {
            public void actionPerformed(ActionEvent event)
            {
                System.exit(0);
            }    
        });
        
        //Меню        
        JMenu helpMenu = new JMenu("Help");
        //Подменю с обработкой событий
        helpMenu.add(new AbstractAction("About")
        {
            public void actionPerformed(ActionEvent event)
            {
            HelpWin helpWin = new HelpWin();
            helpWin.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); //Закрыватем вторичные окна.
            helpWin.setVisible(true);
            }
        });
        // Добавления гл. меню.
        JMenuBar menuBar = new JMenuBar();
        setJMenuBar(menuBar);
        menuBar.add(fileMenu);
        menuBar.add(helpMenu);
        
        // Ст рока ввода адреса
        JLabel labelA = new JLabel("URL:");
        final JTextField urlName = new JTextField(20);
                
        
        //Кнопка с обработчиком событий
        JButton buttonGO = new JButton("GO");
        
        JPanel adress = new JPanel();
        adress.add(labelA);
        adress.add(urlName);
        adress.add(buttonGO);
        
        //Строка ввода адреса
        JPanel contentPane = new JPanel (new BorderLayout());
        setContentPane(contentPane);
        contentPane.add(adress, BorderLayout.NORTH);
        
        
        //Область для вывода страницы.
        JTextArea okno = new JTextArea();
        okno.setBackground(Color.white);
        add(new JScrollPane(okno));
        contentPane.add(okno,BorderLayout.CENTER);
        
        
        //Обработчик для кнопки
        buttonGO.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent event)
            {
                try 
                {   
                    // Конект
                    URL url = new URL("http://www.seti.kr.ua");
                    URLConnection conn = url.openConnection();
                     // Чтение инфы с сервера
                    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                    
                    //Вывод содержимого
                    String inputLine = null;
                    while ((inputLine = in.readLine()) != null) 
                    {
                        final okno = new setInputStream(inputLine);
                        //System.out.println(inputLine);
                    }
                }

                catch (Exception e) {}
                
            }
        });    
        
        
        
        
                
    }
    
}    
// Класс для окна Help
class HelpWin extends JFrame
{
    public HelpWin()
    {
    Toolkit kit = Toolkit.getDefaultToolkit();
    Dimension screenSize = kit.getScreenSize();
    int screenHeight = screenSize.height;
    int screenWidth = screenSize.width;
    setLocation (screenWidth / 4, screenHeight / 4);    
        
        JPanel panel = new JPanel();
        setTitle("About Program");
        Image img = kit.getImage("icon.gif");
        setIconImage(img);
        setSize(WIDTH, HEIGHT);
        panel.setVisible(true);
        
        JLabel label=new JLabel("  JBros; version 0.1t;  Pogoreliy Ihor;  contact: [email protected]");
        label.setFont(new Font("Arial",Font.BOLD, 14));
        add(label, BorderLayout.CENTER);
        
    }
    public static final int WIDTH = 425;
    public static final int HEIGHT = 100;
}


Я хочу вывести содержимое inputLine в okno, которое имеет тип JTextArea.
Код

while ((inputLine = in.readLine()) != null) 
                    {

//Не могу разобраться с синтаксисом, как правильно реализовать. 
                        InputStream hz =  okno.setInputStream(inputLine); 
                        //System.out.println(inputLine);
                    }
                }

                catch (Exception e) {}
                
            }
        });     

Или есть специальные функции для преобрасования html кода и область для его вывода? 
PM MAIL ICQ   Вверх
Noviy
Дата 15.4.2008, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подскажите какими функциями, правильно,   вывести вэб содержимое и  куда? ?
PM MAIL ICQ   Вверх
LSD
Дата 15.4.2008, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Выведи его в /dev/null.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Noviy
Дата 15.4.2008, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



смешно  smile 
PM MAIL ICQ   Вверх
LSD
Дата 15.4.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



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


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Noviy
Дата 16.4.2008, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я считываю с сервера информацию, html код. Я хочу что бы он отображался в окне (каком-нибудь) в виде вэб страници. как это реализовать?

Это сообщение отредактировал(а) Noviy - 16.4.2008, 08:22
PM MAIL ICQ   Вверх
LSD
Дата 16.4.2008, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



HTML умеет отображать JTextPane, тебе надо распарсить HTML с помощью HTMLEditorKit и получившися документ "скормить" JTextPane. Только учти, что JTextPane имеет очень ограниченную поддержку HTML.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Noviy
Дата 16.4.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



спасибо
PM MAIL ICQ   Вверх
Noviy
Дата 17.4.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(LSD @ 16.4.2008,  11:57)
HTML умеет отображать JTextPane, тебе надо распарсить HTML с помощью HTMLEditorKit и получившися документ "скормить" JTextPane. Только учти, что JTextPane имеет очень ограниченную поддержку HTML.

  :(  не получается. smile 
PM MAIL ICQ   Вверх
LSD
Дата 17.4.2008, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(Noviy @  17.4.2008,  14:08 Найти цитируемый пост)
:(  не получается.

Ты что-то неправильно делаешь.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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