idhttp.post传递的参数中有&字符时,改怎么处理
zhero 2005-10-23 04:02:22 试了很多方法都不行,下面的代码把&以后的内容自动截掉了
var
str:string;
IdHTTP: TIDHttp;
myParams:tStringList; //变量定义
ret:TStringStream;
begin
IdHTTP := TIDHttp.Create(nil);
IdHTTP.ReadTimeout := 30*1000;
IdHTTP1.Request.ContentType :='application/x-www-form-urlencoded';
IdHTTP1.HTTPOptions:=[hoForceEncodeParams];
ret:=tstringstream.Create('');
myParams:=tStringList.Create;
myParams.Add('1path='+'d:\www\1.asp');
//myParams.Add('cyfddata='+StringReplace(memo2.Text, '&', '%26', [rfReplaceAll]));
//myParams.Add('cyfddata='+TIdURI.URLEncode(memo2.Text));
//showmessage(TIdURI.URLEncode(memo2.Text));
myParams.Add('data='+memo2.Text);
try
IdHTTP.Post('http://tt/xx.asp',myParams,ret); //idhttp提交post请求,如果攻击其他的留言本得更换提交地址
//showmessage(ret.DataString); //返回页面源码
//showmessage(idHttp.responsetext); //返回错误信息:http 202 ok...
//showmessage(inttostr(idHttp.responsecode)); //返回错误代码: 202
except
Memo2.Lines.Add('估计是成功了'); //发送完毕记录
end;
IdHTTP.Disconnect;
FreeAndNil(IdHTTP);
FreeAndNil(myParams);
end;