delphi post数据与对应的接收方式

2022-11-07 14:33:05 作者:admin

本文整理自网络,侵删。

 前几天研究了下post的方式和服务器的接收处理,环境delphi10.1,首先说客户端post数据,采用idhttp,有两种方式,一种是字符串,一种是流如下:

1.psot字符串的方式

var
  s: string;
  stm: TStringStream; //接收返回内容
  send:TStringList;   //post的内容
begin
  send:=TStringList.Create;

  send.Text:='要post的内容';
  //send.add('name=张三'); //也可以按照不同的参数赋值
  //send.add('sex=男');
  stm := TStringStream.Create(s, TEncoding.UTF8);

  stm.Position := 0;
  try
    IdHTTP1.Post(url, send , stm);
    Memo2.Lines.Text:=stm.DataString; //服务端返回的内容
  except
    result := false;
  end;
  stm.Free;

  send.free;

2.通过流的方式post

var
  s,res:string;
  stm:TStringStream;
begin
  s:='要post的内容,比如说xml格式的文本';
  stm := TStringStream.Create(s, TEncoding.UTF8);
  stm.Position := 0;
  try
    res:=IdHTTP1.Post('url地址', stm);
    Memo2.Lines.Text:=res; //服务端返回的内容
  finally
    stm.Free;

  end;

下面是服务端接收处理,服务端采用IdHTTPServer,在OnCommandGet事件中处理数据

 ARequestInfo.ContentType := 'text/html;Charset=UTF-8';
  path := ARequestInfo.Document; //访问的路径
  if UpperCase(ARequestInfo.command) = 'POST' then

  begin
 //接收post字符串的处理
 // memo1.Lines.Add(arequestinfo.Params.Values['name']) ;//按参数名称接收
// memo1.Lines.Add(arequestinfo.Params.Values['sex']); 

//    Memo1.Lines.Add('FormParams:'+ARequestInfo.FormParams); //所有数据
//    Memo1.Lines.Add('Params:'+ARequestInfo.Params.Text);
//    aRequestContent:= ARequestInfo.UnparsedParams;
    aRequestContent := ARequestInfo.Params.GetText;
   //下面是接收数据流的处理过程

   // if (ARequestInfo.PostStream <> nil) and (ARequestInfo.PostStream.Size > 0) then
   // bergin
   //      ARequestInfo.PostStream.Position := 0;

   //      aRequestContent := StreamToString(ARequestInfo.PostStream);
   // end;

   aRequestContent := tiduri.URLDecode(aRequestContent);  //解决汉字乱码问题
// 数据处理过程

......

AResponseInfo.ContentType := 'text/html';
AResponseInfo.CharSet := 'utf-8';
AResponseInfo.ContentText := '根据处理过程返回客户端信息';
AResponseInfo.WriteContent;
--------------------- 

原文:https://blog.csdn.net/zflybird/article/details/80202485 

相关阅读 >>

Delphi过程函数传递参数的八种方式

Delphi开启和关闭windows xp 防火墙

Delphi idftp 使用被动连接

Delphi 以低用户权限启动一个进程.比如vista或者win7中的ie

Delphi 枚举消息钩子的代码

Delphi实现ftp上传与下载

Delphi获取各种编码的识别符

Delphi 不管什么日期格式转换都不会错了

Delphi研究之驱动开发篇(六)--利用section与用户模式程

Delphi 有授权许可的字符串拷贝函数源码

更多相关阅读请进入《Delphi》频道 >>



在线咨询 拨打电话