Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модуль LWP 
:(
    Опции темы
s_a_s_h_a
Дата 28.9.2004, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Пипл, помогите. Не получается. Сейчас объясню что.
Вот часть кода, которая работала.

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" и у меня перестало работать.
Как это исправить?

PM MAIL   Вверх
korob2001
Дата 28.9.2004, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Ни строки 'GET', ни пременной $METHOD в твоём коде не обнаружил.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
dimes
Дата 28.9.2004, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



В фразу "у меня перестало работать" наверное можно вложить очень много смысла... вот только
извлечь очень тяжело.

По 500 ошибке стало вылетать что ли?
посмотри что вернет
$resp->status_line
если ок то глянь в
$resp->as_string();

Это сообщение отредактировал(а) dimes - 28.9.2004, 17:14
PM ICQ   Вверх
s_a_s_h_a
Дата 30.9.2004, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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 передавать. Правда?

Это сообщение отредактировал(а) s_a_s_h_a - 30.9.2004, 14:59
PM MAIL   Вверх
GoodBoy
Дата 30.9.2004, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

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



Цитата(s_a_s_h_a @ 30.9.2004, 15:57)
много нельзя методом Get передавать. Правда?

Не больше килобайта!


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
s_a_s_h_a
Дата 30.9.2004, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В общем, что делать?
Вот примеры ответов, когда вместо 'GET' стоит переменная, которая принимает значения гет или пост

1) Fatal error: No content-type in POST request in Unknown on line 0

2)GIF89a‘яяяяяя!щ,T;

и т.п.
PM MAIL   Вверх
s_a_s_h_a
Дата 30.9.2004, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ладно. Поставлю вопрос по другому. Надо "удаленно" заполнить форму,
т.е. по указанному в атрибуте action тега form адресу послать пары name_field=value_field.
Как это сделать с помощью модуля LWP. Мануалы читал (на search.cpan.org в том числе),
поэтому просьба помочь конкретной частью кода, а не посылать меня smile.gif на англицкие сайты
да еще с непонятными экзамплами.
PM MAIL   Вверх
ElectricalStorm
Дата 30.9.2004, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
my $req = POST $url,
 [ text => "$text",
   login => "$login",
   passwd => "$passwd"
 ];




--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
s_a_s_h_a
Дата 30.9.2004, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А если гет, то заменить пост на гет?
PM MAIL   Вверх
ElectricalStorm
Дата 30.9.2004, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



что значит а если гет ... вы что заполненую форму гетом отправляете ?


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
s_a_s_h_a
Дата 30.9.2004, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Иногда в некоторых формах (не у меня) стоит гет.
PM MAIL   Вверх
ElectricalStorm
Дата 30.9.2004, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

 $req = HTTP::Request->new(GET => 'ftp://me:[email protected]/');
 $req->header(Accept => "text/html, */*;q=0.1");



--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
s_a_s_h_a
Дата 30.9.2004, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ElectricalStorm

Я немножко модифицировал ваш код и он не работает, подскажите, пожалуйста,
где я ступил.

push(@QUERIES,"\"$FIELD_NAMES[$i]\" => \"$value\"");

my $req = POST $URL, @QUERIES;

причем в $value хранится значение в шестнадцатеричном формате.

Добавлено @ 18:01
ElectricalStorm, а куда сам запрос вставлять, когда гет?

PM MAIL   Вверх
ElectricalStorm
Дата 30.9.2004, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вот так попробуйте... я просто протестировать сейчас нсчего не могу так как вебом уже не занимаюсь sad.gif

Код


use LWP;
my $browser;
sub do_POST {
 # Parameters:
 #  the URL,
 #  an arrayref or hashref for the key/value pairs,
 #  and then, optionally, any header lines: (key,value, key,value)
 $browser = LWP::UserAgent->new() unless $browser;
 my $resp = $browser->post(@_);
 return ($resp->content, $resp->status_line, $resp->is_success, $resp)
   if wantarray;
 return unless $resp->is_success;
 return $resp->content;
}



использовать вот так
Код

 my ($content, $message, $is_success) = do_POST(
   'http://babelfish.altavista.com/translate.dyn',
   [ 'urltext' => $text, 'lp' => $language_path, 'enc' => 'utf8' ],
 );
 die "Error in translation $language_path: $message\n"
  unless $is_success;



Это сообщение отредактировал(а) ElectricalStorm - 30.9.2004, 18:42


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


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

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


 




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


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

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