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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.08.2010, 13:33   #1
Alamo
 
Регистрация: 03.12.2009
Сообщений: 5
По умолчанию Не работает повторная авторизация без WebBrowser1.Destroy

Код:
procedure TForm1.Button9Click(Sender: TObject);
var
  wb: TWebBrowser;
  PostData: OleVariant;
  Headers: OleVariant;
  i: integer;
begin
{
  WebBrowser1.Destroy;
  wb := TWebBrowser.Create(Form1);
  TWinControl(wb).Name := 'WebBrowser1';
  TWinControl(wb).Parent := Form1;
  wb.Align := alNone;
  wb.Height := 425;
  wb.Left := 8;
  wb.Top := 8;
  wb.Width := 849;
  Sleep(500);
}
  Time_ID :=0;//C этой строчки начинается собсна процесс авторизации,
                   //если не вставить предыдущие то после первой успешной
                   //авторизации остальные выдаёт в WebBrowser что неудачно
  Application.onMinimize:=OnMinimizeProc;
  PostData := null;
  Headers := null;
  Sleep(500);
  RichEdit1.Clear;
  RichEdit1.Text:=idhttp1.Get('http://172.20.0.100:987');
  GetMem(Buffer,Length(RichEdit1.Lines.Strings[14]));
  StrCopy(Buffer, PChar(RichEdit1.Lines.Strings[14])+38);
  Memo2.Lines.Add(StrLCopy(Buffer,Buffer,12));
  EncodedDataString1 := 'ID='+HTTPEncode(Buffer)+'&'+'STATE='+HTTPEncode('1')+'&'+
                        'DATA='+HTTPEncode('Der.Loginen');
  PostData := VarArrayCreate([0, length(EncodedDataString1)-1], varByte);
  for i := 1 to length(EncodedDataString1) do
  PostData[i-1] := ord(EncodedDataString1[i]);
  Headers := 'Content-type: application/x-www-form-urlencoded'#10#13;
  WebBrowser1.Navigate('http://172.20.0.100:987',
                       EmptyParam, EmptyParam, PostData, Headers);

  Sleep(500);

  EncodedDataString2 := 'ID='+HTTPEncode(Buffer)+'&'+'STATE='+HTTPEncode('2')+'&'+
                        'DATA='+HTTPEncode('DerParolen');
  PostData := VarArrayCreate([0, length(EncodedDataString2)-1], varByte);
  for i := 1 to length(EncodedDataString2) do
      PostData[i-1] := ord(EncodedDataString2[i]);
  WebBrowser1.Navigate('http://172.20.0.100:987',
                       EmptyParam, EmptyParam, PostData, Headers);

  Sleep(500);

  EncodedDataString3 :=  'ID='+HTTPEncode(Buffer)+'&'+'STATE='+HTTPEncode('3')+'&'+
                        'DATA='+HTTPEncode('1');
  PostData := VarArrayCreate([0, length(EncodedDataString3)-1], varByte);
  for i := 1 to length(EncodedDataString3) do
      PostData[i-1] := ord(EncodedDataString3[i]);
  WebBrowser1.Navigate('http://172.20.0.100:987',
                       EmptyParam, EmptyParam, PostData, Headers);
  FreeMem(Buffer);
  Sleep(500);
  Av:=Av+1;
  idhttp1.Connect();
  Memo1.Lines.Clear;
  Memo1.Lines.Add('Попыток авторизации: ' + IntToStr(Av));

end;
Так же если убрать Sleep ы то то же не авторизуется следующие разы, видимо что то на сервере не даёт повторно заюзать авторизацию.
Можно ли как то авторизовываться не разрушая и создавая компонент?
WebBrowser1.GoHome и прочие перекидывания страниц не помогли. В чём может быть особенность работы компонента? Может надо как то связь принудительно разрывать или ещё что?

Последний раз редактировалось Stilet; 12.08.2010 в 13:46.
Alamo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прога без ошибок, но не работает! emnm Общие вопросы C/C++ 9 25.06.2010 21:40
Повторная авторизация Viteef Работа с сетью в Delphi 6 16.05.2009 09:58
Регистрация/авторизация пользователей при помощи PHP, без использования MySQL. Web-Gangsta PHP 30 03.05.2009 18:32
Авторизация по IdHTTP без имени компонента tuftel Работа с сетью в Delphi 11 17.03.2009 04:20
Повторная установка??? Marsik Софт 8 06.05.2008 20:52