![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Правильный запрос (а не вопрос :)) [D7, WinXP]
Луарвик © (2004-10-02 19:04:00)Нужно послать запрос Post. Чтобы скрипт его принял и обработал, какие нужно использовать заголовки?
POST /script.php HTTP/1.1 - это начало.
text1=123&text2=456&Submit - это конец.
А что должно быть между ними???
Луарвик (2004-10-04 14:35:00) [1]Странно... Только что пробовал, все ок. Конечно не буду искушать судьбу.
Reindeer Moss Eater (2004-10-04 12:22:00) [2]Сервер будет пытаться прочитать все эти 999999 байт.
Пока не наступит таймаут.
После чего он отвергнет твой запрос.
kaZaNoVa (2004-10-04 02:16:00) [3]Луарвик (04.10.04 0:54) [25]
такие, что будешь передавать эти 999999 ... - иначе сервак не поймёт .. (вернее поймёт неправильно)
Луарвик (2004-10-04 00:54:00) [4]Да! Еще вопрос: есть ли смысл, чтоб не вычеслять постоянно Content-Length, поставить в него сразу 999999 (макс. значение)? Какие последствия этого?
Луарвик (2004-10-04 00:41:00) [5]Ай, блин! Нашел, точно!!! Вот с тупил!
Пасибо всем!
Луарвик (2004-10-04 00:38:00) [6]
> <?
> echo $text1.' '.$text2;
> $file = fopen("base.txt", "w");
> fputs ($file, $text1.' '.$text2);
> ?>
> ВОТ ГДЕ ГЛЮК !!!!!!!!1
3 минуты смотрел, так и не нашел глюка...
> Гы, s и х хе-хе ... ;)))))))))
> всё оказалось так просто ...
Что "просто"?
kaZaNoVa (2004-10-03 23:11:00) [7]Гы, s и х хе-хе ... ;)))))))))
всё оказалось так просто ...
kaZaNoVa (2004-10-03 23:09:00) [8]Луарвик (03.10.04 18:05) [14]
<?
echo $text1.' '.$text2;
$file = fopen("base.txt", "w");
fputs ($file, $te x t1.' '.$text2);
?>
ВОТ ГДЕ ГЛЮК !!!!!!!!1
kaZaNoVa (2004-10-03 22:54:00) [9]п.с. вариант [18] работает с idTCPClient1 ...
kaZaNoVa (2004-10-03 22:53:00) [10]но первоначальный вариант работает !!!
но тока от браузера почему-то ...
( http://сфше.org/script.php?text1=dfdf&text2=hjuhj)
а вот при коннекте idTCPClient1 не пашет - тока пробел .. странно
kaZaNoVa (2004-10-03 22:52:00) [11]нашёл глюк ..
надо в скрипте:
<?
//echo $_POST["test2"].' '.$_POST["text2"];
$file = fopen("base.txt", "w");
fputs ($file, $_POST["test2"].' '.$_POST["test1"]);
?>
Piter (2004-10-03 22:12:00) [12]kaZaNoVa © (03.10.04 21:48) [16]
а проверь вот такой:
with Form1.idTCPClient1 do
begin
Host:='www.test2.ru';
Port:=80;
Connect;
Writeln('GET /script.php?test1=123&test2=456 HTTP/1.0');
writeln('Accept-Language: ru,ja;q=0.5');
writeln('Content-Type: application/x-www-form-urlencoded');
writeln('User-Agent: Mozilla/4.7 [en] (Win95; I)');
writeln('Host: www.test2.ru');
writeln('Connection: Keep-Alive');
Writeln('Content-Length: '+IntToStr(10));
Writeln;
Disconnect;
end;
kaZaNoVa (2004-10-03 21:48:00) [13]я тоже только что попробовал аналогичный код .. - тоже пробел ..
Piter (2004-10-03 20:40:00) [14]Луарвик (03.10.04 18:05) [14]
а как ты с помощью Explorer проверяешь данный скрипт?!
Луарвик (2004-10-03 18:05:00) [15]
> [10] kaZaNoVa © (03.10.04 12:57)
> - попробуй запрос в телнете набрать . - может сервак глючит
> .. (у тебя локальный ? - апач ?)
У меня локальный апач из "Денвера-2". Не глючит. Точно.
> откуда ты этот script.php взял? Может он неправильный...
Это спец скрипт, созданый мною, для теста программы. Вот его содержание:
<?
echo $text1.' '.$text2;
$file = fopen("base.txt", "w");
fputs ($file, $text1.' '.$text2);
?>
Он на 100% рабочий, так как при работе с Explorer-ом все ок. И с Оперой.
Piter (2004-10-03 13:08:00) [16]хех... ну ты простенько сказал - глянт исходнии TidHTTP :)))
Тогда уж лучше сразу RFC глянуть...
VMcL (2004-10-03 13:05:00) [17]>> Луарвик (02.10.04 19:04)
Глянь исходники TIdHttp.
Piter (2004-10-03 13:02:00) [18]Луарвик (02.10.04 22:08) [6]
а http://www.beeonline.ruв значение idTCPClient.Host записываеться
в idTCPClient.Host записывается адрес машины куда ты будешь коннектиться. Это может быть как этот самый непосредственный сервер в сети, так и адрес прокси - если ты работаешь через прокси.
Host того сайта куда ты хочешь обратиться записывается параметром в HTTP заголовке, как ты это сделал:
writeln('Host: www.test2.ru');
этот параметр надо всегда указывать
Теперь насчет:
POST http://www.beeonline.ru/servlet/send/sms/HTTP/1.0
и
POST /servlet/send/sms/ HTTP/1.0
если ты непосредственно соединяешься к серверу - то указывай без хоста, то есть просто/servlet/send/sms/
(при этом HTTP параметр "Host:" все равно надо указывать, иначе виртуальные сервера не поймут тебя). Если же коннектишься через прокси, то указывай полностью:
http://www.beeonline.ru/servlet/send/sms/
Луарвик (03.10.04 12:18) [9]
Питер, подскажи!!!
а чего я тебе подскажу? ТЫ поподробнее расскажи чего делаешь, что не так, как проверяешь... откуда ты этот script.php взял? Может он неправильный...
А вообще, как минимум убери строчку
writeln('Connection: Keep-Alive');
если ты не знаешь, что она обозначает...
kaZaNoVa (2004-10-03 12:57:00) [19]- попробуй запрос в телнете набрать . - может сервак глючит .. (у тебя локальный ? - апач ?)
Луарвик (2004-10-03 12:18:00) [20]Питер, подскажи!!!