Создание post запроса
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Создание post запроса - 2009-04-02 19:05:48.490000
|
|
|
ldcount
Сообщений: 11
Оценки: 0
Присоединился: 2008-09-10 21:17:22.956666
|
Добрый день. Я пишу скрипт, который реализует post запрос. Скрипт выполняется и сервер дает положительный ответ (200), но действия, которые должен выполнить скрипт не происходят. Быть может в коде, что ниже просто есть какая-нибудь глупая синтаксическая ошибка? Вопрос 2: при формировании пакета для отправки имеет значение в каком порядке его формировать? Я имеею ввиду, критично ли добавить вначале "host" a потом "user agent" а не наоборот?
<?
$host="server.com";
$path="";
$port=80;
$proxy="";
$hip = gethostbyname($host);
function sendpacketii($packet)
{
global $host, $port, $hdata, $hip;
$ock=fsockopen($hip,$port);
if (!$ock) {
die("No response from ".$hip.":".$port);
}
fputs($ock,$packet,strlen($packet));
$hdata="";
//while (!feof($ock)) {
// $hdata.=fgets($ock);
//$hdata .= fread($ock, 128);
// }
$hdata = @fread($ock, 4096);
fclose($ock);
}
$data="lj_form_auth=c0%3A1238652000%3A600%3A86400%3Amy4s2rZ1Ys-19193164-10%3Ab223341014f66c41fe5cb17aa7e4fd0e&msg_to=someuser&msg_subject=ddd&msg_body=ddd&mode=send\r\n";
$packet ="POST /action.php HTTP/1.1\r\n";
$packet.="Host: ".$host."\r\n";
$packet.="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 FirePHP/0.2.4\r\n";
$packet.="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$packet.="Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n";
$packet.="Accept-Encoding: gzip,deflate\r\n";
$packet.="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
$packet.="Keep-Alive: 300\r\n";
$packet.="Connection: keep-alive\r\n";
$packet.="Referer: http://somereferer.ru\r\n";
$packet.="Cookie: ljuniq=h2OErum5dKGXsCR:1238623007:pgstats0:m1; rsi_segs=B09805_10002; langpref=ru/1238390609; ljmastersession=v1:u19192164:s10:a4BkKd4pyhR//Thanks+for+signing+in+/+LiveJournal+loves+you+a+lot+/+Here+have+a+cookie; ljloggedin=u19193164:s10; BMLschemepref=vertigo; ljsession=v1:u19123164:s10:t1238389200:g74336836cf8efbdb1142202d594d2af9fc745579\r\n";
$packet.="Content-Type: application/x-www-form-urlencoded\r\n";
$packet.="Content-Length: ".strlen($data)."\r\n";
$packet.="\r\n";
$packet.=$data;
//$packet.="UA-CPU: x86\r\n";
//$packet.="Chache-Control: no-chache\r\n";
echo $packet;
echo "<br><br>";
sendpacketii($packet);
echo $hdata;
?>
|
|
|
RE: Создание post запроса - 2009-04-02 21:38:45.110000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
function sendpacketii($packet) $packet.=$data; либо в функции, либо в самом скрипте - надо разные названия для пакета, нельзя одинаковые Плюс в фуекцию не добавил в конец самый return $hdata; Значение получаешь, но не возвращаешь, всегда будет пусто Плюс все-таки while (!feof($ock)) $hdata. = fread($ock, 4096);
|
|
|
RE: Создание post запроса - 2009-04-02 23:15:23.320000
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
quote:
Я пишу скрипт, который реализует post запрос. Скрипт выполняется и сервер дает положительный ответ (200), но действия, которые должен выполнить скрипт не происходят. Быть может в коде, что ниже просто есть какая-нибудь глупая синтаксическая ошибка? Была б синтаксическая ошибка, скрипт бы не заработал. Ошибка скорее лошическая. Ты открываешь Keep-Alive соединение, и считываешь ответ от сервера 1 раз. Предположим первым пакетом тебе сервер вернул только заголовки, второй ты уже не ловишь. Попробуй использовать Connection: close и считывать while (!feof($ock)) quote:
Вопрос 2: при формировании пакета для отправки имеет значение в каком порядке его формировать? нет
|
|
|
RE: Создание post запроса - 2009-04-02 23:20:04.510000
|
|
|
ldcount
Сообщений: 11
Оценки: 0
Присоединился: 2008-09-10 21:17:22.956666
|
Спасибо за ответы. Буду разбираться.
|
|
|
RE: Создание post запроса - 2009-04-02 23:36:47.643333
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
Юзай cURL
|
|
|
RE: Создание post запроса - 2009-04-02 23:39:25.676666
|
|
|
ldcount
Сообщений: 11
Оценки: 0
Присоединился: 2008-09-10 21:17:22.956666
|
Я слышал об этом. Хочу без курла. Зачем?
|
|
|
RE: Создание post запроса - 2009-04-03 00:21:21.073333
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
quote:
Хочу без курла. Зачем? Он лучше пахнет… Шутка… Ну просто он устроен для того чтобы ты мог посылать нужные тебе запросы… Почитай про него
|
|
|
RE: Создание post запроса - 2009-04-03 10:42:39.516666
|
|
|
ldcount
Сообщений: 11
Оценки: 0
Присоединился: 2008-09-10 21:17:22.956666
|
Написал на C#. Его гигантское преимущество в том, что я знаю, как дебажить код. Т.е. в момент отправки я вижу, что отправляется и, если надо, могу это править. В данном случае дебаггером был локальный прокси сервер. Как дебажить php код в данном случае?
|
|
|
RE: Создание post запроса - 2009-04-03 14:17:26.593333
|
|
|
SureGOOD
Сообщений: 20
Оценки: 0
Присоединился: 2009-03-30 14:34:39.703333
|
если без специальных сред для разработки, то просто почаще принтуй значения)
|
|
|
RE: Создание post запроса - 2009-04-03 14:53:22.386666
|
|
|
ldcount
Сообщений: 11
Оценки: 0
Присоединился: 2008-09-10 21:17:22.956666
|
SureGOOD, какие "специальные среды разработки" и плагины к ним ты используешь для написания на php?
|
|
|
|
|