Найдена ссылка: http: //investor .mcgraw-hill. com/phoenix. zhtml?c=96562&p=irol-irhome Перейти по ссылке,'Искать дальше, Выйти? П
Переход по ссылкеhttp://investor.mcgraw-hill.com/phoenix. zhtml?c=96562&p=irol-irhome
Найдена ссылка:http://www.mcgraw-hill.com/index.html
Перейти по ссылке, Искать дальше, Выйти? П
Переход по ссылкеhttp://www.mcgraw-hill.com/index.html
Найдена ссылка:http://sti.mcgraw-hill.com:9000/cgi-bin/query?mss=search&pg=aqПерейти по ссылке, Искать дальше, Выйти? В Завершение программы MiniCrawler.
Рассмотрим подробнее работу программы MiniCrawler. Она начинается с ввода пользователем конкретного URI в командной строке. В методеMain этот URI сохраняется в строковой переменнойuristr.Затем по указанному URI формируется запрос, и переменнойuristrприсваивается пустое значение, указывающее на то, что данный URI уже использован. Далее отправляется запрос и получается ответ. После этого содержимое читается из потока ввода, возвращаемого методомGetResponseStream и заключаемого в оболочку классаStreamReader.Для этой цели вызывается методReadToEnd , возвращающий все содержимое в виде строки из потока ввода.
Далее программа осуществляет поиск ссылки в полученном содержимом. Для этого вызывается статический методFindLink , определяемый в программе MiniCrawler. Этот метод вызывается со строкой содержимого и исходным положением, с которого начинается поиск в полученном содержимом. Эти значения передаются методуFindLink в виде параметровhtmlstrиstartlocсоответственно. Обратите внимание на то, что параметрstartlocотносится к типуref.Сначала в методеFindLink создается копия строки содержимого в нижнем регистре, а затем осуществляется поиск подстрокиhref="http,обозначающей ссылку. Если эта подстрока найдена, то URI копируется в строковую переменнуюuri,а значение параметраstartlocобновляется и становится равным концу ссылки. Но поскольку параметрstartlocотносится к типуref,то это приводит к обновлению соответствующего аргумента методаMain, активизируя поиск с того места, где он был прерван. В конечном итоге возвращается значение переменнойuri.Эта переменная инициализирована пустым значением, и поэтому если ссылка не найдена, то возвращается пустая ссылка, обозначающая неудачный исход поиска.