Страница 1 из 1

Ручная отправка POST запроса на Perl (PHP)

СообщениеДобавлено: 29 янв 2010, 16:41
VitalMax
Желательно Perl. Кто знает как?
Content-Type: multipart/form-data;

Re: Ручная отправка POST запроса на Perl (PHP)

СообщениеДобавлено: 29 янв 2010, 16:51
Serdar1980
#!/usr/bin/perl -w

use LWP;

my $url = 'http://some_url...';
my $browser = LWP::UserAgent->new();

$browser->post($url, {
## содержимое post-запроса
}
);
http://www.opennet.ru/base/dev/perl_lwp.txt.html


в php есть http://docs.php.net/manual/ru/book.curl.php

Re: Ручная отправка POST запроса на Perl (PHP)

СообщениеДобавлено: 29 янв 2010, 16:53
VitalMax
Serdar1980, Это то всё понятно и в этой статье есть то ,что нужно

$response = $browser->post( $url,
[
formkey1 => value1,
formkey2 => value2,
...
],
headerkey1 => value1,
headerkey2 => value2,
);

Точнее проблема заключается в формировании POST запроса. Проанализировав вывод firebug'a никак не удается правильно составить POST запрос и запустить из этого скрипта.

Re: Ручная отправка POST запроса на Perl (PHP)

СообщениеДобавлено: 29 янв 2010, 17:08
Serdar1980
kezman,
так на сколько понимаю заголовки он прописывает сам..
вы только прописываете что это post и шлете переменые

Добавлено спустя 3 минуты 15 секунд:
попробуй так


#!/usr/bin/perl
use IO::Socket;

$link = 'сервер';
$data = "параметры";

$sock = IO::Socket::INET->new(Proto=>"tcp",PeerAddr=>$link,PeerPort=>80) || die "[-]Can't connect to server'";

print $sock "POST /login HTTP/1.0\r\n";
print $sock "Accept: */*\r\n";
print $sock "Content-Type: application/x-www-form-urlencoded\r\n";
print $sock "Content-Length: ".length($data)."\r\n";
print $sock "Referer: http://mmicrosoft.com\r\n";
print $sock "User-Agent: Internet Explorer 6.0\r\n";
print $sock "Connection:close\r\n\r\n$data";

while (<$sock>)
{
print <$sock>;
}

Добавлено спустя 5 минут 57 секунд:
ну и вот еще


бинарные файлы шифруются методом Base64 (можно и QuotedPrint)
Content-Transfer-Encoding: Base64\r\n

тело должно начинаться с --$bound\r\n, а заканчиваться --$bound\--\r\n. В качестве разделителя используется \r\n--$bound\r\n, а не \r\n-$bound\r\n

Re: Ручная отправка POST запроса на Perl (PHP)

СообщениеДобавлено: 30 янв 2010, 21:13
VitalMax
Тут надо написать сам POST запрос, в конце каждой строчки поставив \r\n?
Serdar1980 писал(а):$data = "параметры";

А если еще нужны куки полученные раньше?