Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi и сети

Войти
Регистрация
Восстановить пароль
 
КатяСаша
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 27
#1

При Post-запросе нужно отловить строку из Response Content - Delphi

02.10.2016, 15:00. Просмотров 332. Ответов 7
Метки нет (Все метки)

Может есть такая тема но я не нашёл подходящей.
Начали изучать делфи.
Нужно.
Мы посылаем Post запрос на сайт, после чего на сайте появляется ответ на наше действие. Ловили снифером и получили в Response Content нужный ответ(текст на сайте) - выводим его в lebel1.
Вроде ерунда но совсем нет информации про idHTTP...
подскажите какими функциями это сделать? Т.к мы еще совсем начинающие приведите пример пожалуйста кодом.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2016, 15:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос При Post-запросе нужно отловить строку из Response Content (Delphi):

Как отловить Response Content (Synapse)? - Delphi
Изучая Synapse cтолкнулся с такой проблемой: при Post запросе нужно отловить строку из Response Content. В "Http.Headers.Text"...

Откуда берется content type в post запросе - Delphi
Всем привет. Нужно средствами делфи сделать пост запрос на сайт. Проснифферил запрос, который делает браузер. Пытаюсь его повторить в...

Получить Response Content (Indy) - Delphi
Работаю с idHTTP Посылаю запрос, выдает 400 ошибка, но в этом запросе есть ResponseContent, вот нужно его получить Работаю POST...

Парсинг токена при post запросе - Delphi
Парсинг токена при post запросе вот собственно часть кода: implementation {$R *.dfm} function Pars(T_, ForS,...

Synapse, не возвращается location при post-запросе на https - Delphi
Делаю пост запрос с synapce на https сайта результат такой: HTTP/1.1 200 OK Date: Wed, 10 Sep 2014 17:30:00 GMT Server: Apache ...

Ошибка: Could not load SSL library при POST запросе - Delphi
Отсылаю POST запрос по защищенному соединению с помощью indy, объясняю почему не synapse, в synapse я задаю в Headers Content-Type:...

7
fidel42rus
24 / 24 / 7
Регистрация: 24.10.2015
Сообщений: 395
02.10.2016, 17:31 #2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button1Click(Sender: TObject);
var
  LoginInfo: TStringList;
  Response: TStringStream;
begin
  try
    LoginInfo := TStringList.Create;
    Response := TStringStream.Create('');
//Передавать можно любое кол-во параметров, передаются по имени input. 
    LoginInfo.Add('username=MyName');   //1 параметр, username это имя input, узнать можно в коде страницы 
    LoginInfo.Add('password=MyPass');     // 2 параметр
    IdHTTP1.Post('http://mywebsite.xxx/login.php',LoginInfo,Response);
    Showmessage(Response.DataString);   // то что вам нужно
  finally
    begin
      Response.Free;
      LoginInfo.Free;
    end;
  end;
end;
1
КатяСаша
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 27
02.10.2016, 18:27  [ТС] #3
Спасибо, движение началось в знания отложили.
Можно еще раз вопрос в эту же тему? Может, это тоже нужно учитывать. Подскажите пожалуйста, из за чего у нас появились "кракозябры" вместо текста из страницы. (гуглили, почитали что это возможно из-за русского текста)
Как задать нужную кодировку?
(наша цель после регистрации на сайте нажать на "бонус" после чего на сайте появляется ответ вида- Бонус зачислен. Мы делаем POST запрос на страницу с бонусом и ловим от туда Respons чтобы прочитать текст с страницы "Бонус зачислен" всё ли правильно делаем? Если рейтинг за сегодня был зачислен то такого текста по логике, там быть не должно.
0
Миниатюры
При Post-запросе нужно отловить строку из Response Content   При Post-запросе нужно отловить строку из Response Content  
fidel42rus
24 / 24 / 7
Регистрация: 24.10.2015
Сообщений: 395
02.10.2016, 19:19 #4
Думаю тут именно это и написано, кодировка UTF-8, сталкивался с ней, но решил проблему со стороны сервера

Добавлено через 15 минут
Попробуйте UTF8ToString, отпишитесь по результату
0
КатяСаша
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 27
02.10.2016, 20:30  [ТС] #5
не понимаю как использовать UTF8ToString. Можно пример?
0
fidel42rus
24 / 24 / 7
Регистрация: 24.10.2015
Сообщений: 395
03.10.2016, 13:59 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Utf8ToString(Тут ваш текст)
1
КатяСаша
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 27
04.10.2016, 00:25  [ТС] #7
Спасибо, что отозвались помочь. С вашей помощью мы научились использовать Response...но с кодировкой не получилось - нам говорят все декодеры что это Бинарный документ\файл...
0
MyEternity
84 / 84 / 19
Регистрация: 25.04.2016
Сообщений: 459
05.10.2016, 22:22 #8
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  Windows,
  ActiveX,
  MsXml,
  Variants,
  Classes,
  SysUtils;
 
function Request(Buffer: Pointer; Query: String): Integer;
var
  fReq: IXMLHTTPRequest;
begin
  Result:=1;
  CoInitialize(nil);
  fReq:=CoXMLHTTP.Create;
  try
    try
      fReq.open('POST', Query, false, NULL, NULL);
      fReq.send(NULL);
      TStringList(Buffer).Add(fReq.responseText);
      if TStringList(Buffer).Count > 0 then Result:=0;
    except on E:Exception do
      TStringList(Buffer).Add(E.Message)
    end;
  finally
 
  end;
end;
 
var
  SL: TStringList;
 
 
begin
  SL:=TStringList.Create;
  try
    try
      if Request(SL, 'http://mywebsite.xxx/login.php?username=MyName&password=MyPass') = 0
        then Sl.SaveToFile(ChangeFileExt(ParamStr(0),'.html'));
    except on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
    end;
  finally
    FreeAndNil(SL);
  end;
end.
Вот так попробуйте?
0
05.10.2016, 22:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2016, 22:22
Привет! Вот еще темы с ответами:

Символ '+' в POST запросе - Delphi
Проблема состоит в следующем. Получаю TOKEN с сайта, авторизируюсь. Иногда, когда токен содержит символ '+', в запрос вместо '+' идёт...

Проблема с загрузкой файла response.ContentType = 'text/plain' Response.Addheader 'Content-disposition', 'attachment; filename=export.txt' - C# ASP.NET
Есть файл, который содержит response.ContentType = 'text/plain' Response.Addheader 'Content-disposition', 'attachment;...

Нужно исправить ошибки в POST запросе - C#
Есть сайт уже 2ю неделю пишу автоотправщик файла((((. Не знаю или нужен ШТМЛ. <p> <label for="filename"><strong>Torrent...

Странности с Response.BinaryWrite / content-disposition - attachment - C# ASP.NET
Следующий код вызывает стандартное окно браузера с диалогом открыть/сохранить. Работает в IE6, в IE5 и IE5.5 выдает окно, но два раза, если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru