用什么方法取得IDHTTP中服务器返回的数据呢? ( 积分: 100 )

  • 主题发起人 主题发起人 mirikjoyce
  • 开始时间 开始时间
M

mirikjoyce

Unregistered / Unconfirmed
GUEST, unregistred user!
我用IDHTTP向服务器发送请求,服务器不断返回一段字符串,速度大概一秒6-10笔,大家有什么好的方法呢?



大家也帮我看看这个问题啊,重分酬谢!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3255391
 
我用IDHTTP向服务器发送请求,服务器不断返回一段字符串,速度大概一秒6-10笔,大家有什么好的方法呢?



大家也帮我看看这个问题啊,重分酬谢!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3255391
 
idhttp1.Get(edtEdt_url.Text)下载
 
我说的不太明白。是这样的:我用IDHTTP向服务器发送请求成功后,服务器就会自动地不断发送一段字符串(最新交易数据)进来,速度大概一秒6-10笔,用什么方法取得IDHTTP中服务器发送回来的数据呢?大家有什么好的方法呢?
 
>>服务器就会自动地不断发送一段字符串(最新交易数据)
你解析这个字符串不就是你要的数据吗?
 
我要问的是怎么用IDHTTP去读数据,用什么方法、过程?具体需要些什么步骤?我现在用WEBBROWSER和SNIFFER工具都看到有数据返回。我对IDHTTP实在不熟悉,太菜了。
 
呵呵,你说的是不是要服务端自动返回数据,idhttp能够不断接收到?
1、idhttp是http协议请求服务器数据,每次请求服务器,服务器获取请求内容,然后查询你需要的数据,返回,idhttp就收到了。
2、继续下一次请求,服务器再处理,再查询,再返回。
3、http协议决定服务器端不可以自动不断的发送数据,要idhttp来不断请求才行,如果要服务器端不断发送,而且客户端不断接收到,建议你采用tcp或者udp来处理。
看看第二个平台,对你有帮助:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3247644
 
先感谢差不多算了!我是这样的:我要写一个程序读取服务器发过来的股票期货交易数据,当然,服务器那边不是我可以动的,现在我尝试用IDHTTP发送了一个请求之后,服务器就把数据发过来了(我自己在FORM里面放了一个WEBBROWSER,WEBBROSER 和 SNIFFER也可以看到数据进入了我的机器,但我还是不知道用什么办法把数据读出来)。是不是要用其他的控件呢?如果是的话,用什么控件?具体有什么实现步骤呢? 还有,用WEBBROWSER 看到有数据进来了,但几个小时之后溢出。怎样防止溢出呢?
各位大虾不吝赐教啊!
 
股票期货交易数据传回的格式是不是webbroser能够显示的呢,你用idhttp请求服务器,就有数据发送回来,你可以这样:
var get_str:string;
get_str:=idhttp.get(url);
//下面再分析get_str
 
procedure TForm1.BLogonClick(Sender: TObject);
var
PostString:Tstrings;
s:string;
begin
try
PostString:=TstringList.create;
idhttp1.post('http://demo.sysfx.com:8215/xml/message?schema%24=edforex16&session%24='
+edit1.text+'&server%5Fpush=true',PostString);//我单步运行到这里就一直有数据发过来,程序到这里就一直在这句运行,下面去不了了。我是不是用错控件呢?
s:=idHttp1.Readln(#0,10000,-1);
memo1.Lines.Add(s);
finally
PostString.Free;
end;
end;
 
procedure TForm1.BLogoffClick(Sender: TObject);
begin
WebBrowser1.Navigate('http://demo.sysfx.com:8215/xml/message?schema%24=edforex16&session%24='
+edit1.text+'&server%5Fpush=true');
showmessage('ok');//如果我用WEBBROSER 就可以运行到这里
end;
 
返回的数据应该是这样的:
"<pair act="U" instrmt_id="5" rate_time="20051006005350" buy_rate="1.7744" sell_rate="1.7747" ext_buy_rate="1.7743" ext_sell_rate="1.7748" ext_rate_time="20051006005350"/>"
但我不知道怎么样在程序中取得。
 
QQ 66382746

有什么难呢
 
Memo1.Lines.Add(Response.DataString); //Response.DataString是返回信息
 
Response.DataString 是哪里来的?
 
难倒是没啥难,就是不会做。
 
procedure TForm1.Button1Click(Sender: TObject);
var
p:integer; //定义一个整型变量 储存我们一会找到的位置
s:string; //定义一个字符串变量
begin
s := idHTTP1.Get('http://data.alexa.com/data?cli=10&dat=snba&url=' + Edit1.Text) ; //先得到网页代码
p:=pos('" TEXT="',s) + Length('" TEXT="'); //取得你需要开始取的位置
s:=copy(s,P,30); // 我换个图标
p:=pos('"/>',s); //取得你需要结束取的位置
Edit2.Text:=Copy(s,1,P -1); 然后(开始位置--结束位置)之间的字串就是了
end;
 
后退
顶部