关于Delphi 根据URL获取该网址title(也即是标题)的有关问题~

关于Delphi 根据URL获取该网址title(也即是标题)的问题~~~
   RT,根据要求,要根据一个URL,例如http://www.baidu.com这个网址,就要得到其网页的标题,有什么方法么?那个什么TIdHTTP控件用不好,再次谢过!
------解决思路----------------------
procedure TForm1.itle1Click(Sender: TObject);
var
  Document: IHTMLDocument2;
begin
  WebBrowser1.Navigate('www.baidu.com');

  while WebBrowser1.busy do
    Application.ProcessMessages;

  while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
    Application.ProcessMessages;
  Document := WebBrowser1.Document as IHTMLDocument2;
  Caption := Document.title;
end;

------解决思路----------------------
用Internet控件页的TTcpClient控件速度最快!
procedure TForm1.Button1Click(Sender: TObject);
var
  buf: array[0..1023] of Char;
  I, J, K: Integer;
begin
  TcpClient1.RemoteHost := 'www.baidu.com';
  TcpClient1.RemotePort := '80';
  TcpClient1.Connect;
  buf :=
    'GET / HTTP/1.1'+sLineBreak+
    'UserAgent: Mozilla/3.0 (compatible)'+sLineBreak+
    'Host: www.baidu.com'+sLineBreak+
    'Connection: Close'+sLineBreak+
    sLineBreak;
  TcpClient1.SendBuf(buf, 256);
  buf := '';
  TcpClient1.ReceiveBuf(buf, 1024);
  buf := '';
  TcpClient1.ReceiveBuf(buf, 1024);
  TcpClient1.Disconnect;

  for I:=0 to 1023-5 do
    if (buf[I]='<') and (buf[I+1]='t') and (buf[I+2]='i') and (buf[I+3]='t') and (buf[I+4]='l') and (buf[I+5]='e') then
      for J:=I+6 to 1023-5 do
        if buf[J]='>' then
          for K:=J+1 to 1023-5 do
            if buf[K]='<' then
            begin
              buf[K-(J+1)]:=#0;
              ShowMessage(Utf8Decode(buf));
              Exit
            end else
              buf[K-(J+1)]:=buf[K]
end;

------解决思路----------------------
两种方式都可以!但是3楼的相对复杂一下,你可以用2楼的,比较简单!

------解决思路----------------------
idhttp你感觉不好用,应该是最后返回的编码问题,自己定义一个字符流,然后给返回的字符流设置为UTF8编码就可以了。