Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Taemin
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 1
#1

Не отображается код страницы в Memo (Synapse) - Delphi

15.12.2012, 13:35. Просмотров 853. Ответов 0
Метки нет (Все метки)

Программа авторизируется на сайте, ждет редирект, после делает запрос GET с целью выловить html-код страницы куда средиректило..
Отследил сниффером: По логике вещей все правильно – 2 GET и 1 POST но вот код в Memo так и не отображается.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function FoundLocationStrNum(Headers: TStringlist): integer;
var
  FoundStrPos, i   : integer;
begin
  Result:= -1;
  for i := 0 to Headers.Count do
  begin
    FoundStrPos := Pos('Location: ', Headers.Strings[i]);
    if FoundStrPos > 0 then
    begin
      Result:= i;
      exit;
    end;
  end;
end;
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function GetHTTPStr(http: THTTPSend): string;
var
  BodyStream: TStringStream;
  BodyS: TStringList;
begin
  try
    BodyS := TStringList.Create;
    BodyStream := TStringStream.Create(result);
    begin
      BodyS.LoadFromStream(http.Document);
      result := BodyS.Text;
    end;
  finally
    BodyStream.Free;
    BodyS.Free;
  end;
  http.Document.Seek(0, soFromBeginning);
end;
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
procedure TForm1.btn1Click(Sender: TObject);
var
stream             : TStringStream;
http1,httpsend     : THTTPSend;
Res                : boolean;
n                  : integer;
KSlink,TOKEN,NewURL:string;
 
begin
  httpsend:=THTTPSend.Create;
  http1:=THTTPSend.Create;
  http1.HTTPMethod('get','https://my.kyivstar.ua/tbmb/login/perform.do');
  mmo3.Lines.LoadFromStream(http1.Document);
  TOKEN:=Copy(mmo3.Text, Pos('org.apache.struts.taglib.html.TOKEN', mmo3.Text)+44, 32);
  edt1.Text:=TOKEN;
  stream:=TStringStream.Create('');
  stream.WriteString('org.apache.struts.taglib.html.TOKEN='+TOKEN+'&isSubmitted=true&USERNAME=&USER_NAME=&ORIG_URL=&isInetUser=null&buser=&bpath=&user=%2B38'+edt2.Text+'&password=435465&Submit=%C2%F5%B3%E4+%E2+%F1%E8%F1%F2%E5%EC%F3&value%28jumpTo%29=&value%28jumpToUrl%29=');
  httpsend.MimeType:='application/x-www-form-urlencoded';
  httpsend.Document.LoadFromStream(stream);
 
  Res:=httpsend.HTTPMethod('post','https://my.kyivstar.ua/tbmb/login/perform.do');
 
          if Res then
          case httpsend.ResultCode of 301, 302, 307:
               begin
               n := FoundLocationStrNum(httpsend.Headers);
                   if (n >= 0) and (n <= httpsend.Headers.count) then
                   begin
                   NewURL := StringReplace(httpsend.Headers.Strings[n],'Location: ','',[]);
                   httpsend.Headers.Clear;
                   httpsend.HTTPMethod('GET',NewURL);
                   edt3.Text:=NewURL;
                   mmo2.Lines.Text:=GetHTTPStr(httpsend);
                   end;
                end;
          end;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 13:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не отображается код страницы в Memo (Synapse) (Delphi):

Как загрузить в Memo код веб страницы??
Как загрузить в Memo код веб страницы?? Может для этого более хороши другие...

В Memo записывается не весь код страницы, полученной через IdHTTP
Для получения кода html,я использую вот данный код: memo1.Lines.Text:=...

Почему не отображается 0 перед запятой в real при выводе в memo?
собственно сабж. исходник: procedure TForm1.Button1Click(Sender: TObject);...

Разбить текст в Memo на страницы и пронумеровать их
добрый вечер програмеры ,с праздником вас всех есть такая задача загрузить в...

Загрузить url открытой web страницы в memo
привет, я хотел загрузить активный url в memo. нужно загрузить url открытой...

Как в memo с idHTTP поместить только 2-ю половину всего кода страницы?
Пусть код определенной страницы со строками: a b c d e f g Вопрос:...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2012, 13:35
Привет! Вот еще темы с решениями:

Работа с Memo (не законченный код)
Создать программу,которая может хранить данные в виде списка с возможностью...

Подстроить код Memo для StringList
Всем привет. Я столкнулся с такой проблемой, мне нужно вот этот код для Memo...

Загрузить код нескольких html-страниц в один Memo
Помогите! На фоте на listbox 5 ссылок , как мне их получить код страницы...

Через PascalABC проверить на правильность написанный в memo код
пожалуйста помогите не могу сделать так чтобы при нажатии на кнопку написанный...


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

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

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