怎么编程向一个网上的CGI程序提交请求(100分)

  • 主题发起人 主题发起人 Beast
  • 开始时间 开始时间
B

Beast

Unregistered / Unconfirmed
GUEST, unregistred user!

怎么编程向一个网上的CGI程序提交请求,就像再IE里面提交一样?
怎么得到返回的数据那?
 
高手何在,CJ何在,茶叶蛋何在,…………何在?
 
向cgi程序提交请求有两种方式
get和POST
如果是get的话。可以用nmhttp控件中的get方法。
nmhttp1.get('http://***.***.***/cgi-bin/abc.cgi?aaa=***&bbb=***');
或者用ics中的httpcli来实现
var
datain:tmemorystream;
begin
datain:=tmemorystream.Create;
httpcli1.URL :='http://***.***.***/cgi-bin/abc.cgi?aaa=***&bbb=***';
httpcli1.RcvdStream:=datain;
httpcli1.Get;
取的数据已经在datain中了。转换格式即可。
POST的话因nmhttp中的POST有问题。建议用ics中的http来实现
var
datain:tmemorystream;
dataout:tmemorystream;
buf:string;
begin
datain:=tmemorystream.Create;
dataout:=tmemorystream.create;
buf:=postdata;
postdata为向cgi提交的数据格式为aaa=***&bbb=***
dataout.Write(buf[1],length(buf));
DataOut.Seek(0, soFromBeginning);
httpcli1.SendStream := DataOut;
httpcli1.RcvdStream := datain;
httpcli1.URL :='http://***.**.***/cgi-bin/abc.cgi';
httpcli1.Post;
数据已经在datain中了。转换格式即可。
 
用Indy、ICS也可,推荐使用Indy
 
不推荐使用indy,推荐使用ics
indy是阻塞性的。
虽然说indy是自带 的。
 
比如说

<form action=http://www.xxxxxxx.com/search method=get name=f>
<input type=text value="" framewidth=4 name=q size=55 maxlength=256>
<input name=btnG type=submit value="搜索">
</form>
然后你就可以用nmhttp控件来提交就相当于点按纽了。
nmhttp1.get('http://www.xxxxxxx.com/search?q=美女');
就可以了,如果不要结果,就用
nmhttp1.head('http://www.xxxxxxx.com/search?q=美女');

要返回数据处理就可以用nmhttp1.body来取得但是只能用get 方法了不。
 
谢谢~~
没想到大富翁还能象以前~~
 
后退
顶部