请问IdHttp Post数据时.如果Post带换行的内容?.比较急.分不够再加.在线等待.

steve0531 2004-04-01 12:45:05
我使用IdHttp post数据时.是要post一个memo组件的内容的.
这个memo里面的内容是:
111
222
333
然后.我post到一个页面.那么在这个页面显示的是111222333.
怎样才能让这个页面显示这样的结果?
111
222
333
当然.这个页面是没有问题的.它支持这个带格式的显示..
下面是我的代码.
procedure TForm1.Button3Click(Sender: TObject);
var
Url,s : string;
Response : TStringStream;
Request : TStrings;
begin
Response := TStringStream.Create('');
try
Request := TStringList.Create ;
try
s := 'logname=csz&password=123&mem='+Memo1.Text;
Request.Append(s);
Url:='Http://127.0.0.1/add.asp'
IdHTTP1.Request.ContentType :='application/x-www-form-urlencoded';
IdHTTP1.Post(Url,Request,Response);
Memo1.Lines.Text := Trim(Response.DataString);
finally
Request.Free ;
end;
finally
Response.Free ;
end;
end;
...全文
554 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
steve0531 2004-04-09
  • 打赏
  • 举报
回复
sorry.没有成功.
postren 2004-04-09
  • 打赏
  • 举报
回复
网页方面的没有弄过,修改你的代码如下,试试看吧,不一定好用
procedure TForm1.Button3Click(Sender: TObject);
var
Url,s : string;
Response : TStringStream;
Request : TStrings;
I: Integer;
begin
Response := TStringStream.Create('');
try
Request := TStringList.Create ;
try
s := 'logname=csz&password=123&mem='+Memo1.Text;
for I := 0 to Memo1.lines.Count - 1 do
begin
S := S + Memo1.Lines[I] + '<br>'; //
end;
Request.Append(s);
Url:='Http://127.0.0.1/add.asp'
IdHTTP1.Request.ContentType :='application/x-www-form-urlencoded';
IdHTTP1.Post(Url,Request,Response);
Memo1.Lines.Text := Trim(Response.DataString);
finally
Request.Free ;
end;
finally
Response.Free ;
end;
end;
oovv 2004-04-09
  • 打赏
  • 举报
回复
tttttt
hch_45 2004-04-09
  • 打赏
  • 举报
回复
POST参数数据带换行,把#13(字符) 转成 '%13'(字符串),把#10(字符) 转成 '%10'(字符串),Apche和IIS都什么自已转回来。
steve0531 2004-04-09
  • 打赏
  • 举报
回复
解决了.

把post除去的内容中的字符进行替换
#13='<br>'
' '='%20'
这样.通过idhttp的编码.web页面就可以显示正常带简单格式的文本了.
steve0531 2004-04-02
  • 打赏
  • 举报
回复
不对..不是网页的问题.网页是没有问题的..手动通过填写网页的提交表单.提交后.显示的是带格式的.但通过软件提交上去就不可以.
我已经试了很多的网站.提交的都是不带格式的.都是提交成了一行(不分行.不带格式).
以前是解决了这个问题.是idhttp组件的事.但现在忘记怎么处理的了..
steve0531 2004-04-02
  • 打赏
  • 举报
回复
获得数据.一般都是在
IdHTTP1.Post(Url,Request,Response);
这个Response.DataString就是存储了返回的数据.

继续顶..
realside 2004-04-02
  • 打赏
  • 举报
回复
借贵地一问:怎样用idHTTP获得下载来的图片的二进制数据????

你的问题正解是要修改网页的ASP/CGI源程
steve0531 2004-04-02
  • 打赏
  • 举报
回复
还没有人给做解答吗?
我快要死了..
5555~~~~
chludlf 2004-04-01
  • 打赏
  • 举报
回复
procedure TForm1.Button3Click(Sender: TObject);
var
Url,s : string;
Response : TStringStream;
Request : TStrings;
begin
Response := TStringStream.Create('');
try
Request := TStringList.Create ;
try
s := 'logname=csz&password=123&mem='+Memo1.Text;
Request.Append(s);
Url:='Http://127.0.0.1/add.asp'
IdHTTP1.Request.ContentType :='application/x-www-form-urlencoded';
IdHTTP1.Post(Url,Request,Response);
Memo1.Lines.add(Trim(Response.DataString));
finally
Request.Free ;
end;
finally
Response.Free ;
end;
end;
aiirii 2004-04-01
  • 打赏
  • 举报
回复
uses IdMultipartFormData;

{ .... }

procedure TForm1.Button1Click(Sender: TObject);
var
data: TIdMultiPartFormDataStream;
begin
data := TIdMultiPartFormDataStream.Create;
try
{ add the used parameters for the script }
data.AddFormField('param1', 'value1');
data.AddFormField('param2', 'value2');
data.AddFormField('param3', 'value3');

{ Call the Post method of TIdHTTP and read the result into TMemo }
Memo1.Lines.Text := IdHTTP1.Post('http://localhost/script.php', data);
finally
data.Free;
end;
end;
steve0531 2004-04-01
  • 打赏
  • 举报
回复
以前我记得很容易就弄好了.后来硬盘物理损坏.我忘记怎么解决了..
还忘高手指点..
如果分不够.我可以单独再开贴放分.
steve0531 2004-04-01
  • 打赏
  • 举报
回复
继续顶
steve0531 2004-04-01
  • 打赏
  • 举报
回复
继续顶.

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧