![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TidTCPClient [D7, WinXP]
Луарвик © (2004-09-30 08:57:00)А где есть инфа, о использовании компонента? И главный вопрос: как с его помощью отправить запрос Post?
Про idHTTP не говорите, потому что: http://www.delphimaster.ru/cgi-bin/forum.pl?id=1096368986&n=4&web=1
Луарвик (2004-10-01 21:01:00) [1]Вощем взял idTCP сервер из примеров к indy. При соединениях в memo1 результаты вывожу так:
Protocol.lines.add(CommBlock.Command);
Protocol.lines.add('***');
Protocol.lines.add(CommBlock.MyUserName);
Protocol.lines.add('***');
Protocol.lines.add(CommBlock.Msg);
Protocol.lines.add('***');
Protocol.lines.add(CommBlock.ReceiverName);
CommBlock :TCommBlock
При работе с IE получил это:
OST /script.php HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/
gsarcade-launch, */*
Accept-Language: ru
Co
coding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: localhost
Conten
t
Content-Length: 33
Connection: Keep-Alive
Cache-Control: no-cache
text1=123&text2=456&Submit
С Оперой че-похожее. Когда свою прогу юзал, то не получил НИЧЕГО. Все это крайне странно...
Reindeer Moss Eater (2004-10-01 17:20:00) [2]TCPServer подойдет
Луарвик (2004-10-01 17:13:00) [3]
> А то что скрипт не записывает, - так здесь может быть миллион
> причин.
> 1. Неполный заголовок HTTP запроса (У меня приведен пример
> минимально возможного)
> 2. Неправильный адрес ресурса на самом сервере
> 3. Неправильные имена параметров.
> и так далее.
Ну 2 и 3 причины можно вычеркнуть , так как идентичная операция с IdHTTP проходит успешно.
Ладно попытаюсь простейший http-прокси замутить. Кстати там какой ваще компонент нужен?
Reindeer Moss Eater (2004-10-01 16:19:00) [4]Если лень разбирать код html страницы с формой отправки данных для выявления имен параметров и адреса скрипта-назначения можно поступить следующим способом: пишем простейший http-прокси, который записывает в файл все приходящие на него запросы.
Указываем в ie его в качестве прокси и работаем со своим скриптом в ie.
После чего смотрим внутрь файла и видим там правильный запрос в чистом виде.
Reindeer Moss Eater (2004-10-01 16:05:00) [5]Сначала ты говорил что этот код не работает.
А то что скрипт не записывает, - так здесь может быть миллион причин.
1. Неполный заголовок HTTP запроса (У меня приведен пример минимально возможного)
2. Неправильный адрес ресурса на самом сервере
3. Неправильные имена параметров.
и так далее.
Луарвик (2004-10-01 15:38:00) [6]Я говорю, что скрипт должен записать в файл переменные. НО ОН НЕ ЗАПИСЫВАЕТ НИ ФИГА. Почему?
Reindeer Moss Eater (2004-10-01 14:23:00) [7]Этот код работает.
В чем можно легко убедиться написав в 10 строках свой веб сервер и записав в лог подробности приходящего на него запроса.
Этот код отправляет POST запрос.
Больше этот код ничего делать и не должен.
А то что он должен делать - он делает.
Луарвик (2004-10-01 13:49:00) [8]
with Form1.idTCPClient1 do
begin
Host:='www.test3.ru';
Port:=80;
Connect;
Writeln('POST /script.php HTTP/1.0');
Writeln('Content-Length: 22');
Writeln;
WriteLn('text1=1234&text2=5678&');
Disconnect;
end;
Что не так? Не работает код!!!
Вот код скрипта:
Он должен сохранять в Base.txt переменные.
Луарвик (2004-09-30 13:36:00) [9]Да, еще вопрос: Port это что? Он всегда один и тот же или нет? Тогда где его взять?
Луарвик (2004-09-30 13:25:00) [10]Ага, пасибо!
Reindeer Moss Eater (2004-09-30 13:22:00) [11]Потому что у тебя ник такой.
И пароль.
Луарвик (2004-09-30 13:18:00) [12]
> [2] Reindeer Moss Eater © (30.09.04 11:13)
> Только Content-Length: 30
Это почему?
Reindeer Moss Eater (2004-09-30 11:13:00) [13]Только Content-Length: 30
Reindeer Moss Eater (2004-09-30 11:08:00) [14]with idTCPClient1 do
begin
Host:='www.domain.com';
Port:=80;
Connect;
Writeln('POST /somescript.cgi HTTP/1.0');
Writeln('Content-Length: 29');
Writeln;
WriteLn('name=Луаврик&password=кирвауЛ&');
Disconnect;
end;