| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > как создать соединение с HTTP сервером? |
| Автор: Spieler 5.1.2003, 01:30 |
| Послушайте, можно ли написать присоединение к HTTP серверу, не пользуясь всякими дополнительными модулями типа UserAgent? А то мне это нельзя... 8( |
| Автор: Семён Розовых 6.1.2003, 00:16 |
| Конечно можно. Для этого надо всего лишь использовать модуль IO::Socket. Он входит в стандартную подставку Perl. Короче это делается так. use IO::Socket; $host=www.dwcgr0up.com; $port=80; #Нам же надо по http #Создаем новое соединение: $socket = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $port, Proto => "TCP") or die print "connection failed to $host:$port\n"; print $socket "GET http://www.dwcgr0up.com/index.php" HTTP/1.1\n"; #Метод, запрашиваемя страница и версия протокола. # Дальше и так всё понятно. Если нет, то почитай о протоколе HTTP. print $socket "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */*\n"; print $socket "Accept-Language: ru\n"; print $socket "Content-Type: application/x-www-form-urlencoded\n"; print $socket "Accept-Encoding: gzip, deflate\n"; print $socket "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)\n"; print $socket "Host: $host\n"; print $socket "Connection: Keep-Alive\n"; print $socket "Connection: close\n\n"; |
| Автор: NightGoblin 7.1.2003, 17:21 | ||
Можно обойтись и без объектного интерфейса. Вот простенькая прога, распечатывающая страничку с хоста, URL которой задан в командной строке (по умолчанию localhost/index.html):
Уж Socket должен быть в любом дистрибутиве, даже на бесплатном хостинге |
| Автор: Unregistered 29.1.2003, 04:16 |
| А для использования любого модуля достаточно взять его на http://perl.com/CPAN/ бросить в папку со скриптом, а в теле скрипта прописать reqire Filename.pm |
| Автор: Nekto 5.2.2003, 00:28 |
| Вообще-то, народ, сокеты многими сайтами обрубаются, т.е. вам не будет разрешать к ним подконектится. Это не есть хорошо. Есть иной выход, причем весьма неплохой - LWP. Этот модуль позволяет стукаться к сайтам, смотреть инфу, брать контент (картинки не всчет), причем конектится он может и черех прокси и как угодно, хоть прикинувшись браузером. Кроме того, он позволяет играться HTTP заголовком. И разумеется, входящими в него кукями Взять можно со СПАНА |