Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/371.32  21 Aug 2000  09:55:02
 To : dmitriy@genphys.phys.msu.su
 Subject : Re: как ходят пакеты в сети, и как их можно сформировать???
 -------------------------------------------------------------------------------- 
 
 PK>> Так может действительно неверный?
 
 dgpms> Hет, логин/пароль верный, если все ручками через html формы набирать, то
 dgpms> работает.
 
 PK>> Запрос формируется как раз согласно rfc1867. В
 PK>> этом легко убедиться
 PK>> добавив
 PK>> print $req->as_string.
 
 dgpms> Увидел, действительно пакеты формируются согласно rfc :)
 
 PK>> Работа при отсутствии пароля подтверждает то, что
 PK>> запрос формируется
 PK>> правильно. Попробуй передать ТОЛЬКО user/password
 PK>> методом POST и GET.
 
 dgpms> Hе логинится, если делать так:
 
 dgpms> #!/usr/bin/perl -w
 dgpms> $test = "http://www.test.ru/account/addimg.html";
 dgpms> use HTTP::Request::Common qw(POST);
 dgpms> use LWP::UserAgent;
 dgpms> use CGI qw(header -no_debug);
 
 dgpms> my $req = POST $test,
 dgpms> Content_Type => 'form-data',
 dgpms>    Content  => [
 dgpms>         user => 'vovka',
 dgpms>       password => '123321',
 dgpms>        ];
 dgpms> my $res = LWP::UserAgent->new->request($req);
 dgpms> print header, $res->is_success ? $res->content : $res->status_line;
 dgpms> print $req->as_string;
 
 dgpms> логинится если делать так:
 
 dgpms> #!/usr/bin/perl -w
 dgpms> $test = "http://www.test.ru/account/addimg.html";
 dgpms> use HTTP::Request::Common;
 dgpms> use LWP::UserAgent;
 dgpms> $ua = LWP::UserAgent->new();
 
 dgpms> my $req = POST $test,
 dgpms>     [
 dgpms>    user => 'vovka',
 dgpms>  password => '123321',
 dgpms>     ];
 
 dgpms> $content = $ua->request($req)->as_string;
 dgpms> print "content-type: text/html\n\n";
 dgpms> print $content;
 dgpms> print $req->as_string;
 
 dgpms> Разница в том, что в первом случае пакет передается как описано в
 dgpms> rfc1867, а во втором так:
 
 dgpms> POST http://www.test.ru/account/addimg.html
 dgpms> User-Agent: libwww-perl/5.47
 dgpms> Content-Length: 26
 dgpms> Content-Type: application/x-www-form-urlencoded
 
 dgpms> user=vovka&password=123321
 
 dgpms> В rfc1867 написано, что если инфа из формы не бинарная, то передается
 dgpms> она как application/x-www-form-urlencoded, но она не передается в
 dgpms> multipart/form-data как в application/x-www-form-urlencoded!!!!!
 
 PK>> Если на той стороне тоже твой скрипт, посмотри,
 PK>> что принимается в виде
 PK>> user/password.
 
 dgpms> Hа той стороне не мой скрипт!!!!! :(((((
 
 Вот в нем, похоже, и проблема. Кривой он. Скорее всего, разбирает форму
 руками, а при multipart/form-data параметры передаются по одному, а не
 пачками.
 
 -- 
 Счастливо!
   Ран.
 --- ifmail v.2.14.os-p7-tma3
  * Origin: MemoNet (2:5020/371.32@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: как ходят пакеты в сети, и как их можно сформировать???   Artem Chuprina   21 Aug 2000 09:55:02 
Архивное /ru.cgi.perl/171219bee978b.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional