delphi post数据与对应的接收方式  
官方Delphi 学习QQ群: 682628230(三千人)
频道

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


前几天研究了下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 


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.21033596992493 seconds