Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SwinHttp в асинхронном режиме 
:(
    Опции темы
Guide
  Дата 13.7.2008, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



Пройдясь по форуму а так же сайту автора компонента SwinHttp не нашел ни одного примера использования в асинхронном режиме. Хотелось посмотреть на простой пример, который бы наглядно показал все аспекты использования SwinHttp имено в асинхронном режиме. Ведь как написано в описании, это один из его плюсов.

Например:
Код

var
 AccessData: TStringList;
 SHttp: TSwinHttp;
begin
 AccessData := TStringList.Create;
 AccessData.Add('name=login');
 AccessData.Add('pass=password');
 SHttp := TSwinHttp.Create;
 SHttp.InThread := false; // переводим в синхронный режим
 SHttp.Post('http://localhost/', AcessData);
 if SHttp.Error = 0 then // если всё успешно
  Memo1.Lines.LoadFromStream(SHttp.Response.Content);
 SHttp.Free;
 AccessData.Free;
end;


Напишите пожайлуста в асинхронном режиме...

Это сообщение отредактировал(а) Guide - 13.7.2008, 18:53
PM MAIL   Вверх
VICTAR
Дата 14.7.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 3
Всего: 80



Цитата

В асинхронном режиме результаты проверяются в событии OnWorkEnd. Давать запросы можно в любое время. Если сделано несколько запросов подряд, то они ставятся в очередь и выполняются по порядку. То есть мы можем одним разом запросить 100 урлов, они будут загружены один за другим, а нам остаётся только принимать результаты в OnWorkEnd. 

delphilab
PM MAIL   Вверх
Guide
Дата 14.7.2008, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



VICTAR, Я в своём сообщении три раза написал слово "асинхронный" и тему назвал этим словом. Сказал что на сайте создателя не нашел ничего. А самое главное просил привести пример. А вы мне даёте ссылку на, то место, где я скачал компонент и не нашел примера, который я здесь ищу? Спасибо вам большое, хотя бы за внимание...  smile 
PM MAIL   Вверх
VICTAR
Дата 14.7.2008, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 3
Всего: 80



Guide, еще один любитель читать между строк?
Хотя бы вчитывайтесь, ЧТО вам пишут.
Код

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure WorkEnd(Sender: TSwinHttp; Request: TSwRequest);
  public
    { Public declarations }
  end;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  with TSwinHttp.Create(Self) do
  begin
    OnWorkEnd := WorkEnd;
    InThread := True;
    Get('http://mail.ru');
  end;
end;

procedure TForm1.WorkEnd(Sender: TSwinHttp; Request: TSwRequest);
begin
  if Sender.Error = 0 then
    Memo1.Lines.LoadFromStream(Sender.Response.Content);
end;


Добавлено через 1 минуту и 17 секунд
И желательно потом не забыть уничтожить TSwinHttp
PM MAIL   Вверх
Guide
Дата 14.7.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



Извиняюсь. Спасибо большое за помощь. Вам плюс.  (Как наберу 100.  smile )

P.S. Еще один вопрос. Надеюсь оно стоит вашего внимания отправка данных методом POST?
Вернее то как я сделал в первом посте, не правильно. Так как в SHttp.Post(URL:String; PostData:String); нельзя вставить TStringList; И как же правильно будет?

Это сообщение отредактировал(а) Guide - 14.7.2008, 17:22
PM MAIL   Вверх
VICTAR
Дата 14.7.2008, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 3
Всего: 80



Код

TSwinHttp.Post('http://mail.ru/','name=login&pass=password');

PM MAIL   Вверх
Guide
Дата 15.7.2008, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



Делаю так:
Код

var
  Form1: TForm1;
  SwinHttp1 : TSwinHttp;

implementation

{$R *.dfm}

procedure TForm1.CreateHttp;
begin
  SwinHttp1 := TSwinHttp.Create(Form1);
  SwinHttp1.OnWorkEnd := WorkEnd;
  SwinHttp1.InThread := True;
end;

procedure TForm1.LogIn;
begin
  SwinHttp1.Post('http://localhost/','name=qwerty&password=qwerty&cmd=login');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  CreateHttp;
  LogIn;
end;


Результаты снифа:
Код

name = ""
password = ""
cmd = ""


Почему же она не отправляет переменные?

PM MAIL   Вверх
VICTAR
Дата 15.7.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 3
Всего: 80



Ничего не могу сказать на счет http://localhost/, мой снифер не перехватывает этот запрос.
А вот что показывает снифер на http://mail.ru/
Код

POST / HTTP/1.1
User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: mail.ru
Content-Length: 37
Cache-Control: no-cache

name=qwerty&password=qwerty&cmd=login

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0562 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.