向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中了。转换格式即可。