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;
使用str=idhttp.get('http://www.delphibbs.com/keylife/rss.asp');
但是只能获取首行“<?xml version="1.0" encoding="UTF-8"?>”,如何获取全部数据??
已经使用了idHTTP.HandleRedirects:=true;
解决方案 »
- 关于TDBGRID显示问题求助
- VCL组件 + 设计模式 = ?
- 请教:程序有时无法退出,窗口被关闭后仍在任务栏显示?
- 我是新手,dxDBGrid做查找如何用?
- 高分求FastReport(支持D4-D7)(100分)RastManchine(支持d4-d7)(100分)一定要可以用,顺便问个问题
- 如何在paradox数据库表中insert类型为currency的数据
- 小弟我又有一事不明啊,麻烦大家了
- 今年中程,大概多少分能PASS啊?
- 以前用BDE的连接,现在改为ODBC的话,程序要不要改动??(在线等,马上给分)
- 得到的代码在编译的时候说我缺少文件,可以告诉我怎么回事吗?
- 退出的问题?
- 图片打印问题
很明显,因为里面没有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;
其实原因很简单,服务器那端在判断客户端用的软件,如果是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;