idhttp使用get方法获取如:“http://www.delphibbs.com/keylife/rss.asp”
使用str=idhttp.get('http://www.delphibbs.com/keylife/rss.asp');
但是只能获取首行“<?xml version="1.0" encoding="UTF-8"?>”,如何获取全部数据??
已经使用了idHTTP.HandleRedirects:=true;

解决方案 »

  1.   

    用XMLDOCUMENT.LOAD(http://www.delphibbs.com/keylife/rss.asp)
      

  2.   

    我也遇到这种情况,用它get('www.xinhua.org')的时候错误。
      

  3.   

    使用ICS算什么解决方法。。这是从那个服务器返回的信息。。
    很明显,因为里面没有Content length的信息,
    这是一种HTTP不很规范的返回,正好在。。
    <?xml version="1.0" encoding="UTF-8"?>
    在这儿出现了两个回车换行。。客户端程序以为已经读完数据,所以被截断。。
    //----------------------------------------------------------------HTTP/1.1 200 OK
    Date: Fri, 12 Nov 2004 03:33:10 GMT
    Server: Microsoft-IIS/6.0
    X-Powered-By: ASP.NET
    Content-Type: text/xml
    Set-Cookie: ASPSESSIONIDSQAQQABT=MLNMJDPBFBJOOOBEPODONCGH; path=/
    Cache-control: private<?xml version="1.0" encoding="UTF-8"?>
    (正好在这儿出现了两个回车换行。。客户端程序以为已经读完数据)<rss version="2.0" 。//--------------------------------------------------------------------procedure TForm1.Button1Click(Sender: TObject);
    var
      s:string;
      so:TStringSTream;
      req:String;
      url:String;begin
      url:='http://www.delphibbs.com/keylife/rss.asp';
      req:='GET'+' '+url+' '+#13#10#13#10;  so:=TStringStream.Create('');
      with IdTCPClient1 do
      begin
        Host:='www.delphibbs.com';
        Port:=80;
        Connect;
        Write(req);
        ReadStream(so,-1,true);
      end;  Memo1.Text:=so.DataString;end;
      

  4.   

    呵。。再试一下,明白了。刚才我说的也不对。
    其实原因很简单,服务器那端在判断客户端用的软件,如果是IE6.0才会返回XML文档,不然仅短短的返回几十个字节..
    procedure TForm1.Button2Click(Sender: TObject);
    var
      url:string;
      s:string;
    begin
      url:='http://www.delphibbs.com/keylife/rss.asp';
      IdHTTP1.Request.UserAgent:=' Mozilla/4.0 (compatible; MSIE 6.0;)';//加上它就行了.
      s:=IdHTTP1.Get(url);
      Memo1.Text:=s;end;
      

  5.   

    高手,不知道动网或者其他一些论坛程序的CONN.ASP能不能获得呢?