为了读取RSS的XML内容。我采用了如下三种方法,都有问题:
1、用WinINet API的方式获取,这种方式获取的内容最正确,但却不知道怎么透过Proxy(IE已经保存了Proxy的用户名和密码),即便能透过Proxy也不想用户输入用户名和密码,因为IE中已经设置过了。
function GetWebPage(const AURL : String):String;
var
  Session, HTTPFile : HINTERNET;
  FileSize, BytesRead : DWORD;
  Content : PChar;
  i: Integer;
  ReadOver : Boolean;
begin
  Result := '';
  Session := InternetOpen(NIL, 0, NIL, NIL, 0);
  if Session = NIL then
  begin
    Result := GetInternetLastErrorInfo;
    exit;
  end;
  HttpFile := InternetOpenUrl(Session, PChar(AURL), NIL, 0, 0, 0 );
  if HttpFile =NIL then
  begin
    Result := GetInternetLastErrorInfo;
    exit;
  end;
  
  FileSize := 1024*1024*10;
  GetMem(Content, FileSize);
  if Content = NIL then
  begin
    raise Exception.Create('内存不足!');
    exit;
  end;
  try
    for i := 0 to 1000 do
    begin
      ReadOver := InternetReadFile(HTTPFile, Content, FileSize, BytesRead );
      Content[BytesRead] := #0;
      Result := Result + StrPas(Content);
      if ReadOver and (BytesRead = 0) then break;
    end;
  finally
    InternetCloseHandle(HTTPFile);
    InternetCloseHandle(Session);
    FreeMem(Content);
  end;
end;
2、用TWebBrowser的Document强制转化为IHTMLDocument2的方式获取outHtml,outText均不是正确格式的XML,这种方法可以利用IE自动透过Proxy
3、最后采用TWebBrowser的OleObject.XMLDocument的方式是最接近答案的,可以穿过Proxy,同时可以获得XML文档,但是遇到一个网站XML格式不太正确的(中间多了很多空行的,IE不能解释),发现回来的内容被截取了,只剩下部分了,与IE右键查看源码看到的内容完全不一样,如果哪位能帮助解决这个问题,给分100.
    v := WB.OleObject.Document.XMLDocument;
    AIntf := IUnknown(v) as IXMLDOMDocument;    if AIntf.xml +'A' = 'A' then exit;    FXML := NIL;
    FXML := LoadXMLData(AIntf.xml);其实我的问题就是如何用TWebBrowser获得与在IE上点击右键查看代码完全一致的文本。