Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Правильный запрос (а не вопрос :)) [D7, WinXP]


Страницы:   1 2

Луарвик ©   (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]

Питер, подскажи!!!


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо