| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > Модуль LWP |
| Автор: s_a_s_h_a 28.9.2004, 16:45 |
| Пипл, помогите. Не получается. Сейчас объясню что. Вот часть кода, которая работала. my $h=new HTTP::Headers; my $REFERER=$ENV{HTTP_REFERER}; my $UA=$ENV{HTTP_USER_AGENT}; $h->referer($REFERER); my $ua=new LWP::UserAgent; $ua->agent($UA); my $req=HTTP::Request->new('',$URL,$h); my $resp=$ua->request($req); if($resp->is_success) { my $STR1=$resp->content; Теперь, я вместо 'GET', подсталяю переменную $METHOD, которая может принимать значения "GET" or "POST" и у меня перестало работать. Как это исправить? |
| Автор: korob2001 28.9.2004, 17:12 |
| Ни строки 'GET', ни пременной $METHOD в твоём коде не обнаружил. |
| Автор: dimes 28.9.2004, 17:13 |
| В фразу "у меня перестало работать" наверное можно вложить очень много смысла... вот только извлечь очень тяжело. По 500 ошибке стало вылетать что ли? посмотри что вернет $resp->status_line если ок то глянь в $resp->as_string(); |
| Автор: s_a_s_h_a 30.9.2004, 14:57 |
| my $h=new HTTP::Headers; my $REFERER=$ENV{HTTP_REFERER}; my $UA=$ENV{HTTP_USER_AGENT}; $h->referer($REFERER); my $ua=new LWP::UserAgent; $ua->agent($UA); my $req=HTTP::Request->new('GET',$URL,$h); вот здесь my $resp=$ua->request($req); if($resp->is_success) { my $STR1=$resp->content; Перестало работать - стало работать неверно (ответы совсем непонятные стали приходить) Ведь, много нельзя методом Get передавать. Правда? |
| Автор: GoodBoy 30.9.2004, 15:16 | ||
Не больше килобайта! |
| Автор: s_a_s_h_a 30.9.2004, 15:47 |
| В общем, что делать? Вот примеры ответов, когда вместо 'GET' стоит переменная, которая принимает значения гет или пост 1) Fatal error: No content-type in POST request in Unknown on line 0 2)GIF89a‘яяяяяя!щ,T; и т.п. |
| Автор: s_a_s_h_a 30.9.2004, 17:01 |
| Ладно. Поставлю вопрос по другому. Надо "удаленно" заполнить форму, т.е. по указанному в атрибуте action тега form адресу послать пары name_field=value_field. Как это сделать с помощью модуля LWP. Мануалы читал (на search.cpan.org в том числе), поэтому просьба помочь конкретной частью кода, а не посылать меня да еще с непонятными экзамплами. |
| Автор: ElectricalStorm 30.9.2004, 17:21 | ||
|
| Автор: s_a_s_h_a 30.9.2004, 17:25 |
| А если гет, то заменить пост на гет? |
| Автор: ElectricalStorm 30.9.2004, 17:29 |
| что значит а если гет ... вы что заполненую форму гетом отправляете ? |
| Автор: s_a_s_h_a 30.9.2004, 17:44 |
| Иногда в некоторых формах (не у меня) стоит гет. |
| Автор: ElectricalStorm 30.9.2004, 17:57 | ||
|
| Автор: s_a_s_h_a 30.9.2004, 18:00 |
| ElectricalStorm Я немножко модифицировал ваш код и он не работает, подскажите, пожалуйста, где я ступил. push(@QUERIES,"\"$FIELD_NAMES[$i]\" => \"$value\""); my $req = POST $URL, @QUERIES; причем в $value хранится значение в шестнадцатеричном формате. Добавлено @ 18:01 ElectricalStorm, а куда сам запрос вставлять, когда гет? |
| Автор: ElectricalStorm 30.9.2004, 18:40 | ||||
вот так попробуйте... я просто протестировать сейчас нсчего не могу так как вебом уже не занимаюсь
использовать вот так
|