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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> существование странички, есть ли что-нить по ссылке? 
:(
    Опции темы
Devorior
  Дата 30.1.2003, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вот такой вопрос:

как проверить существует ли страничка по заданному урлу. Сделал вот так:
Код

.....
URL url = new URL(curLink);
try{
 URLConnection con = url.openConnection();
 int length = con.getContentLength();
 if (length == -1) System.out.println(curLink + " not found");
}catch(IOException ioe){System.out.println("exception :)");}
.....


но почему-то заведомо рабочие страницы все равно имеют length = -1.

Где меня клинит?
PM MAIL ICQ   Вверх
Matteo
Дата 30.1.2003, 01:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











соединение ты открыл, замечательно, а кто данные получать будет? smile.gif)
метод getContent() или openStream() если я не путаю. В любом случае открыть соединение еще недостаточно.
К тому же есть класс HttpURLConnection может с ним стоит поэкспериментировать.

  Вверх
Devorior
Дата 30.1.2003, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



так зачем мне сами данные? мне только длина нужна. getContentLength() имхо как раз это и возвращает
PM MAIL ICQ   Вверх
Matteo
Дата 30.1.2003, 03:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Devorior @ 29.1.2003, 18:01)
так зачем мне сами данные? мне только длина нужна. getContentLength() имхо как раз это и возвращает

почитай доки по протоколу HTTP, сначала веб сервером передеются заголовки, затем тело документа, если в заголовках есть необходимая информация, теоретически ты можешь прервать соединение и дальше ничего не получать...

далее: (как раз таки и написано что -1 является не кодом ошибки а может передаваться если длина неизвестна... или просто не получена).

getContentLength
public int getContentLength()Returns the value of the content-length header field.

Returns:
the content length of the resource that this connection's URL references, or -1 if the content length is not known.

А ОШИБКА твоя в том, что не вызывается метод сonnect(), внимательнее читаем доки:

In general, creating a connection to a URL is a multistep process:
openConnection()
Manipulate parameters that affect the connection to the remote resource

connect()
Interact with the resource; query header fields and contents


отсюда понимаем откуда -1 smile.gif




  Вверх
Matteo
Дата 30.1.2003, 04:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











проверил свою идею написав тестовый класс. выдает длину для статических документов (html,xml) для динамически генерируемых страниц (jsp) выдает -1 smile.gif дальше думать лень, думаю, что jzip фильтр тут все равно не при чем smile.gif
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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