Автор Тема: LWP::UserAgent контроль заголовков  (Прочитано 5663 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн skillcoder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://winwmz.com
LWP::UserAgent контроль заголовков
« : 25 Мая 2006, 17:04:54 »
Необходимо отправить серверу в точности вот такой заголовок

POST /game/flottenversand.php?session=7777318ddc1a HTTP/1.1
Host: megagame.ru
User-Agent: Mozilla/5.0 (Windows; U; Win98; ru; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: [url]http://megagame.ru/game/flotten3.php?session=7777318ddc1a[/url]
Cookie: U_ru2:meganame=U_ru2%3meganame; PHPSESSID=99f0b256b40e4f6f485eb595d6435d37
Content-Type: application/x-www-form-urlencoded
Content-Length: 360

thisgalaxy=6&thissystem=259&thisplanet=14&thisplanettype=1&speedfactor=1&thisresource1=15034&thisresource2=21786&thisresource3=72181&galaxy=6&system=259&planet=4&planettype=2&ship203=6&consumption203=50&speed203=15000&capacity203=25000&ship209=1&consumption209=300&speed209=4000&capacity209=20000&speed=1&order=8&resource1=15034&resource2=21786&resource3=73159


Но некак немогу этого сделать.
http://winwmz.com
Any web scripting

Оффлайн skillcoder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://winwmz.com
LWP::UserAgent контроль заголовков
« Ответ #1 : 25 Мая 2006, 19:23:35 »
Нашёл способ забить хедеры как нужно, но после этого процедура перестала адекватно работать.
Что в ней не так?

sub get_page
{
my $uri = shift;
my $content = shift;
my $ref = shift;

$uri =~ /^http:\\/\\/(.*?)\\/(.*?)/;
my $host = $1;
my $link = $2;

my $ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new(file => "lwpcookies.txt", autosave => 1));
$ua->agent(\'Mozilla/5.0 (Windows; U; Windows NT 5.2; ru; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3\');

$ua->default_header(\'Host\' => $host);
$ua->default_header(\'Accept\' => \'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\');
$ua->default_header(\'Accept-Language\' => \'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\');
$ua->default_header(\'Accept-Encoding\' => \'gzip, deflate\');
$ua->default_header(\'Accept-Charset\' => \'windows-1251,utf-8;q=0.7,*;q=0.7\');
$ua->default_header(\'Keep-Alive\' => \'300\');
$ua->default_header(\'Connection\' => \'keep-alive\');
$ua->default_header(\'Content-Type\' => \'application/x-www-form-urlencoded\');
        $ua->default_header(\'Referer\' => $ref);

my $req = HTTP::Request->new(POST => $uri);
$req->content($content);
my $rez = $ua->request($req);
return $rez;
}
http://winwmz.com
Any web scripting

Оффлайн xames

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 62
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
LWP::UserAgent контроль заголовков
« Ответ #2 : 26 Мая 2006, 06:57:28 »
$r = HTTP::Request->new(POST => $url);
...
$r->header(%head);
...
$r=$ua->request($reqq);
 

#########
в %head и хранятся все заголовки в виде:
Ключ - название заголовка
Значение - его содержимое

Оффлайн skillcoder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://winwmz.com
LWP::UserAgent контроль заголовков
« Ответ #3 : 26 Мая 2006, 09:53:36 »
Каким образом можно узнать что именно отсылает скрипт, т.к. имеет значение в каком именно порядке идут строки в заголовке.
Например у себя на компе я использую снифер (CommView), но как быть если скрипты лежат на хостинге?
http://winwmz.com
Any web scripting

Оффлайн xames

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 62
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
LWP::UserAgent контроль заголовков
« Ответ #4 : 26 Мая 2006, 14:01:30 »
use LWP::Debug qw(+ -conns);
LWP::Debug::trace(\'send()\');

Оффлайн skillcoder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://winwmz.com
LWP::UserAgent контроль заголовков
« Ответ #5 : 26 Мая 2006, 16:09:44 »
Можно немного поподробнее?
Я так и не понял как распечатать то что посылается.

Изучение Perldoc LWP::Debug не помогло
http://winwmz.com
Any web scripting

Оффлайн skillcoder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://winwmz.com
LWP::UserAgent контроль заголовков
« Ответ #6 : 26 Мая 2006, 18:06:43 »
ПредЧувствую что у меня будет ещё один вопрос по этой теме.

По умолчанию LWP отправляет Keep-Alive: close.

Строка:
$req->header(\'Connection\' => \'keep-alive\');
в итоге просто добавляет keep-alive, а не заменяет close на keep-alive

на выходе имеем
Connection = keep-alive, close;

Cтрока:
print $res->as_string;

выдает
Connection: close

Как сделать так чтоб в отправляемом заголовке было Connection: Keep-Alive ?

P.S. Пожалуста ответте на предыдущий вопрос. Желательно дать код который бы выводил всё что отправляется, т.к.
Цитировать
xames:

use LWP::Debug qw(+ -conns); LWP::Debug::trace(\'send()\');
я не понял :(
http://winwmz.com
Any web scripting

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28