Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2009, 14:50   #1
CraZZy RabbIt
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 172
По умолчанию отправка POST

есть страничка

Код:
<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=windows-1251"></head><body bgcolor="#C0C0C0">
<form method="POST"><p><br><br><p><input type="submit" 
name="offserver" value="offserver" style="font-family: Arial">
Выключить сервер</p> <p></font></form></body></html>
которая при нажатии на кнопку посылает post`ом серверу сообщение offserver.
как сделать чтоб при нажатии на кнопку в делфи отправлялся такой запрос???
(без использование webbrowser и желательно через indy)

Последний раз редактировалось CraZZy RabbIt; 24.04.2009 в 14:54.
CraZZy RabbIt вне форума Ответить с цитированием
Старый 24.04.2009, 15:00   #2
eldar
Форумчанин
 
Аватар для eldar
 
Регистрация: 04.08.2008
Сообщений: 154
По умолчанию

Через какой нибудь снифер поймай post запрос посмотри какие днные отпрвляються серверу
и через indy отправь пост запрос

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
x:tstringlist;
begin
idhttp1.Request.Host:=('neo.liga.net');
idhttp1.Request.UserAgent:=('Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 MRA 5.4 (build 02620) Firefox/3.0.7');
idhttp1.Request.Accept:=('text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
idhttp1.Request.AcceptLanguage:=('ru,en-us;q=0.7,en;q=0.3');
idhttp1.Request.AcceptEncoding:=('gzip,deflate');
idhttp1.Request.AcceptCharset:=('windows-1251,utf-8;q=0.7,*;q=0.7');
idhttp1.Request.Connection:=('keep-alive');
idhttp1.Request.Referer:=('http://www.liga.net/links/add.html');
idhttp1.get('http://neo.liga.net/links/add.html');
x:=tstringlist.create;
x.Add('name='+Edit2.Text);
x.Add('url='+Edit1.Text);
x.Add('author='+Edit3.Text);
x.Add('email='+Edit4.Text);
x.Add('lang=1&refresh=1&cost=1');
x.Add('desc='+Edit5.Text);
x.Add('tema_1020=on');
x.Add('user_tema=&submit=++Ok++');



idhttp1.Post('http://neo.liga.net/perl/links/add.pl',x);
eldar вне форума Ответить с цитированием
Старый 24.04.2009, 15:03   #3
CraZZy RabbIt
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 172
По умолчанию

снифер не нужен,я сам отправляю данные,вопрос в том как их отправить и еще появился вопрос по авторизации - как ввести данные в окно с логином и паролем?
CraZZy RabbIt вне форума Ответить с цитированием
Старый 24.04.2009, 15:07   #4
eldar
Форумчанин
 
Аватар для eldar
 
Регистрация: 04.08.2008
Сообщений: 154
По умолчанию

x.Add('login='+Edit1.Text);
x.Add('password='+Edit2.Text);
eldar вне форума Ответить с цитированием
Старый 24.04.2009, 15:11   #5
eldar
Форумчанин
 
Аватар для eldar
 
Регистрация: 04.08.2008
Сообщений: 154
По умолчанию

Отправк POST запроса через indy 9

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
x:tstringlist;
begin
x:=tstringlist.create;
x.Add('login=Ваш логин');
x.Add('password=Ваш пароль');
x.Add('offserver=offserver'); Вроде бы так :)
x.Add('submit=ok');

idhttp1.Post('стрница куда вы отправляете POST запрос',x);

Последний раз редактировалось eldar; 24.04.2009 в 15:13.
eldar вне форума Ответить с цитированием
Старый 24.04.2009, 15:14   #6
CraZZy RabbIt
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 172
По умолчанию

неполучается((((
вот кусок кода сервера который обрабатывает запросы
Код:
   if ARequestInfo.Params.Values['offserver']='offserver' then Timer2.Enabled:=true;
по идее вот эта строчка должна срабатывать
Код:
idhttp1.Post('127.0.0.1','offserver');
но не работает.
в чем ошибка??
CraZZy RabbIt вне форума Ответить с цитированием
Старый 24.04.2009, 15:20   #7
eldar
Форумчанин
 
Аватар для eldar
 
Регистрация: 04.08.2008
Сообщений: 154
По умолчанию

Попробуй так

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
x:tstringlist;
begin
x:=tstringlist.create;

x.Add('offserver=offserver'); 
x.Add('submit=ok');

idhttp1.Post('127.0.0.1',x);
eldar вне форума Ответить с цитированием
Старый 24.04.2009, 15:33   #8
CraZZy RabbIt
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 172
По умолчанию

нет,все рано не работает...серверу передаются 2 значения
name="offserver" value="offserver" и сравниватся...
может попробовать так?

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
x:tstringlist;
begin
x:=tstringlist.create;

x.Add('name="offserver"'); 
x.Add('value="offserver"');
x.Add('submit=ok');
idhttp1.Post('127.0.0.1',x);
но чувствую что это уже извращение....


да,это извращение,сервер с ошибкой вылетает((((

Последний раз редактировалось CraZZy RabbIt; 24.04.2009 в 15:37.
CraZZy RabbIt вне форума Ответить с цитированием
Старый 24.04.2009, 16:48   #9
eldar
Форумчанин
 
Аватар для eldar
 
Регистрация: 04.08.2008
Сообщений: 154
По умолчанию

Вам надо посмотреть пакет который передаётся ну например с помощью этой программы HTTP Debugger Pro 2.2

пакет должен выглядить так пример

Код:
POST /index.php HTTP/1.1
Host: www.dowlands.sk6.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.9) Gecko/2009040821 MRA 5.4 (build 02620) Firefox/3.0.9
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.dowlands.sk6.ru/index.php
Cookie: dle_onl_session=03468b7d39726cf6e419e59c90a3dba8; __utma=191778111.2238747587418832400.1233758060.1237212880.1237402099.89; __utmz=191778111.1236267573.55.5.utmcsr=derevnya12.narod.ru|utmccn=(referral)|utmcmd=referral|utmcct=/; __qca=1233682779-16826879-94309028; lastusername=eldar; rull_read=yes; PHPSESSID=e40e0808b069088b9447bb215d2da6d3; dle_newpm=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 95

login_name=%E1%E5%E1%E5&login_password=%EC%E5%EC%E5%EC%E5%EC&image.x=24&image.y=12&login=submit
И н основе пакета строить запрос
eldar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка данных методом post ANDEREY Работа с сетью в Delphi 4 11.08.2011 10:09
Отправка файла POST-запросом на PHP-скрипт... ActiveX Работа с сетью в Delphi 7 20.07.2009 16:54
Отправка POST запроса S@fer Работа с сетью в Delphi 0 29.01.2009 13:33
POST Stanislav Работа с сетью в Delphi 3 03.03.2008 18:05