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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2016, 23:39   #1
brownb
Форумчанин
 
Регистрация: 16.10.2016
Сообщений: 157
По умолчанию Отправить пост и получить ответ

Подскажите как отправить Пост запрос и получить содержимое страницы допустим в мемо(html код).Как отправить пост я знаю а вот как получить ответ нет.Буду очень признателен!
brownb вне форума Ответить с цитированием
Старый 17.10.2016, 23:55   #2
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
Как отправить пост я знаю а вот как получить ответ нет.
смешно
come-on вне форума Ответить с цитированием
Старый 17.10.2016, 23:57   #3
brownb
Форумчанин
 
Регистрация: 16.10.2016
Сообщений: 157
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  EncodedDataString: string;
  PostData: OleVariant;
  Headers: OleVariant;
  i: integer;
begin { TForm1.Button1Click }
  // First, create a URL encoded string of the data
  EncodedDataString := 'dologin=Submit&txtLogin=asdasd&txtPassword=1234567';

  // The PostData OleVariant needs to be an array of bytes
  // as large as the string (minus the 0 terminator)
  PostData := VarArrayCreate([0, length(EncodedDataString)-1], varByte);

  // Now, move the Ordinal value of the character into the PostData array
  for i := 1 to length(EncodedDataString) do
    PostData[i-1] := ord(EncodedDataString[i]);

  Headers := 'Content-type: application/x-www-form-urlencoded'#10#13;

  // Parameters 2 and 3 are not used, thus EmptyParam is passed.
  WebBrowser1.Navigate('www.site.com/login.php',
                       EmptyParam, EmptyParam, PostData, Headers);
end;
Вот так отправляю пост запросы.наверное криво(( ну все же ).Теперь такая проблема
допустим есть три значения а1,а2,а3
Есть пост запросologin=Submit&txtLogin=asda sd&txtPassword=1234567

Как добавить после каждого параметра значение(по очереди) и отправить пост.Допустим
dologin=Submita1&txtLogin=asdasd&txtPassword=123456 7
пост
dologin=Submitа2&txtLogin=asdasd&txtPassword=123456 7
пост
dologin=Submitа3&txtLogin=asdasd&txtPassword=123456 7
пост
dologin=Submit&txtLogin=asdasdа1&txtPassword=1234567
пост
dologin=Submit&txtLogin=asdasdа2&txtPassword=1234567
.....

Последний раз редактировалось brownb; 18.10.2016 в 09:46.
brownb вне форума Ответить с цитированием
Старый 18.10.2016, 10:10   #4
brownb
Форумчанин
 
Регистрация: 16.10.2016
Сообщений: 157
По умолчанию

И еще вопрос,как разбить строку в меме на параметры через разделитель то есть
777|888 - строка в мемо
777 - первый параметр
888 второй параметр
edit1.text=param1
edit2.text=param2

Последний раз редактировалось brownb; 18.10.2016 в 11:43.
brownb вне форума Ответить с цитированием
Старый 18.10.2016, 11:44   #5
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Цитата:
Сообщение от brownb Посмотреть сообщение
И еще вопрос,как разбить строку в меме на параметры через разделитель то есть
777|888 - строка в мемо
777 - первый параметр
888 второй параметр
edit1.text=param1
edit2.text=param2
toje interesno
mitiay вне форума Ответить с цитированием
Старый 18.10.2016, 12:06   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
И еще вопрос,как разбить строку в меме на параметры через разделитель то есть
777|888 - строка в мемо
777 - первый параметр
888 второй параметр
edit1.text=param1
edit2.text=param2
например, через простейший парсинг:

Код:
s := Memo1.Strings[i];
if Pos('|', s)>0 then begin
  edit1.text=copy(s,1, Pos('|', s)-1);
  edit2.text=copy(s,Pos('|', s)+1, Length(s));
end
else  begin
  edit1.text=s;
  edit2.text='';
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.10.2016, 13:08   #7
brownb
Форумчанин
 
Регистрация: 16.10.2016
Сообщений: 157
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
например, через простейший парсинг:

Код:
s := Memo1.Strings[i];
if Pos('|', s)>0 then begin
  edit1.text=copy(s,1, Pos('|', s)-1);
  edit2.text=copy(s,Pos('|', s)+1, Length(s));
end
else  begin
  edit1.text=s;
  edit2.text='';
end;
Код:
 var
s:string;
i:integer;
begin
s := Memo3.lines.Strings[i];
if Pos('|', s)>0 then begin
  edit1.text:=copy(s,1, Pos('|', s)-1);
  edit2.text:=copy(s,Pos('|', s)+1, Length(s));
end
else  begin
  edit1.text:=s;
  edit2.text:='';
end;
пробую так,пустота в едитах
brownb вне форума Ответить с цитированием
Старый 18.10.2016, 13:16   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
пробую так,пустота в едитах
так и должно быть.
Вы же забыли указать номер строки i (i - это индекс (номер) строки в Memo, которая Вам нужна)

например, если Вам нужна первая строка в мемо, тогда так:
Код:
 s:= Memo3.lines.Strings[0];
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.10.2016, 14:33   #9
brownb
Форумчанин
 
Регистрация: 16.10.2016
Сообщений: 157
По умолчанию

Спасибо!Помогите с третьим постом
brownb вне форума Ответить с цитированием
Старый 18.10.2016, 14:47   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от brownb Посмотреть сообщение
Спасибо!Помогите с третьим постом
я ни разу в жизни не использовал TWebBrowser...
поэтому, возможно, ляпну ерунду..

я бы попробовал так.

После отправки запроса, просто получил содержимое документа.

попробуйте код отсюда:
How can I get HTML source code from TWebBrowser


p.s. и учтите, что взламывать сайты перебором долго и бесперспективно.
Да и незаконно!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить ответ от БД mitiay БД в Delphi 14 07.11.2015 10:23
Не удается отправить пост Gefo JavaScript, Ajax 2 24.02.2013 16:17
Как отправить смс через сеть и работа с пост gufon Работа с сетью в Delphi 1 03.03.2011 00:32
Отправить и получить ответ Andrey85 Работа с сетью в Delphi 1 03.01.2011 02:58
Отправить AT команду модему и получить ответ Никки Общие вопросы Delphi 3 24.06.2008 17:15