|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Golubev 2:5030/542.122 19 Oct 2000 00:16:10 To : Artem Chuprina Subject : LWP::UserAgent проблемы с redirect'ом -------------------------------------------------------------------------------- *** Answering a msg posted in area AZAZELLO.MAIL (Почта мне). Hello Artem! 18 октября 2000 19:44, Artem Chuprina wrote to Andrey Golubev: AG>> моем скрипте этот ответ не записывается... а записываются только AG>> 2 байта... а надо бы чтобы записывалось, то что в ответ на сабмит AG>> дает сервер... AC> Вот он и пишет, что в ответ на сабмит дает сервер. Hу, поскольку ты AC> плюешь на заголовок и выводишь только тело, то его тебе и выводят. А а что это плохо, что никак не использую заголовок ? если бы я его использовал, то мог бы я добиться чего хочу ? AG>> sub POSTsubmit AG>> { AG>> ($spreferer, $spurl, $spformdata, $sptgpname)=@_; AG>> $h = new HTTP::Headers; AG>> $h->referer("$spreferer"); AG>> # Create a user agent object AG>> $ua = new LWP::UserAgent; >>> $ua->redirect_ok; AG>> $ua->timeout(20); AG>> $ua->agent('Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; AG>> DigExt)'); # Create a request my $req = new HTTP::Request(POST, AG>> "$spurl", $h); AG>> $req->content_type('application/x-www-form-urlencoded'); AG>> $req->content("$spformdata"); # Pass request to the user agent AG>> and get a response back my $res = $ua->request($req); AG>> # Check the outcome of the response AG>> if($res->is_success) { # нашли AG>> $tmp="$sptgpname".".html"; AG>> open(htmlka, ">logs/$catalog/$tmp"); AG>> print htmlka "$spurl\n"; AG>> print htmlka "$spformdata\n"; AG>> print htmlka $res->content; AG>> close(htmlka); AG>> Когда я ставлю в скрипт выделенную строчку, а именно AG>> $ua->redirect_ok; AG>> то выдается следующая ошибка... AG>> Can't call method "method" on an undefined value at AG>> C:/Proglang/Perl/site/lib/LWP/UserAgent.pm line 367, <tgp> chunk AG>> 1264. AG>> Я смотрю в perldoc LWP::UserAgent и вот что там читаю: AG>> $ua->redirect_ok AG>> This method is called by request() before it tries to do any AG>> redirects. It should return a true value if a redirect is AG>> allowed to be performed. Subclasses might want to override AG>> this. AG>> The default implementation will return FALSE for POST AG>> request and TRUE for all others. AC> А словаря у тебя тоже нет? Перевожу: словарь есть... мне кажется, что я так все примерно и понял, как ты пишешь, но просто видимо я сути недопонимаю, даже на русском... ;( AC> Этот метод вызывается request()'ом, прежде чем оный request пытается AC> произвести любые редиректы. Он [redirect_ok - AC] должен возвращать AC> истинное значение, если редирект разрешен. Подклассы могут пожелать AC> его переопределить. AC> Стандартный возвращает FALSE для POST-запросов и TRUE для всех AC> остальных. AC> Ее не вызывать, а переопределять надо, если хочешь, чтобы фиговина AC> при редиректах вела себя не так, как по умолчанию, а иначе. дык значит ее надо не вызывать, а переопределять... но как ? я пытаюсь писать вместо $ua->redirect_ok; следующие строки $ua->redirect_ok = "TRUE"; или redirect_ok='TRUE'; но это все бред, так как ничего не работает... Пожалуйста, объясни, как переопределить переменную являющуюся методом или это сам метод... я уже просто запутался... ;( Плс, если есть немного времени, объясни что же все-таки мне надо сделать, чтобы скрипт записывал то, что выдают в ответ сервера, которые редиректят ! не то чтобы я не хочу сам думать... я много пытался пробовать по всякому, но видимо в этом вопросе я просто сути не понимаю, даже когда ты так хорошо перевел на русский содержание хелпа... Заранее благодарен за потраченное на меня время ! И очень надеюсь, что ты мне немного поможешь разобраться в ситуации... WBR, Andrey Golubev --- * Origin: Вот ! (2:5030/542.122) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1887039ee089c.html, оценка из 5, голосов 10
|