Я использовал Indy еще в Delphi 6 дней, и сейчас я играю с Indy 10. То, что я хочу сделать, невероятно просто, но я не вижу простого способа сделать это, поэтому я должен что-то упустить.
Что я хочу сделать, это примерно так:
Вот фактический код, который я использую:
procedure TForm1.btnGetURLClick(Sender: TObject);
begin
moHeader.Lines.Clear;
moBody.Lines.Clear;
try
moBody.text := IdHttp1.Get(edURL.text);
finally
end;
end;
Когда запрос будет выполнен, http_result должен содержать HTML-код из указанного URL-адреса. Однако, похоже, что это не работает, поэтому у меня возникает ощущение, что мне, возможно, следует использовать свойство IOHandler или событие OnWork компонента - однако использование не кажется очевидным для меня, и я не смог найти никаких рабочих примеров. с гуглом. Я уверен, что это было сделано ранее, поэтому любая помощь будет оценена.
Дополнительная информация:
В духе того, чтобы быть более конкретным, я хочу знать:
1. Я делаю это правильно с самого начала (или я что-то упустил?).
2. Если так, то почему это не работает?
3. Всегда возможно, что есть ошибка в комбинации компилятора / OS / Indy, который я использую. (Хотя должно работать).
Я должен отметить, что я всегда получаю всплывающее окно "Соединение закрыто изящно". Это кажется исключением, и это может повлиять на результат функции. Я попытался поймать это в ловушку с помощью ПОПРОБУЙ ... НАКОНЕЦ, но это не сработало. Возможно, потому что Indy вызывает исключение в фоновом режиме после запуска метода Get, я полагаю.
Наконец, вот скринкаст программы, работающей для устранения путаницы:
http://screencast.com/t/NDMzNTQ5
Я ожидаю, что HTML заполнит второй блокнот.