首页 > Windows开发 > 详细

Delphi idHttpServer接收Http Get请求解码问题

时间:2018-02-24 17:28:54      阅读:1872      评论:0      收藏:0      [点我收藏+]

引用 Httpapp单元,
使用Httpdecode函数进行解码

procedure TFrmMain.HTTPServerCommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
  RespStr,recvText: string;
  msgText: string;
begin
  CoInitialize(nil);
  try
    try
      msgText := Log|【+FormatDateTime(yyyy-mm-dd hh:mm:ss,Now)++Format(收到请求:类型:%s, 路径:%s,来自:%s:%d,
                             [ARequestInfo.Command, ARequestInfo.Document,
                             TIdIOHandlerSocket(AThread.Connection.IOHandler).Binding.PeerIP,
                             TIdIOHandlerSocket(AThread.Connection.IOHandler).Binding.PeerPort]);

      SendMessage(FrmMain.Handle,MYTHREAD_MESSAGE,Integer(@msgText),1);
      if ARequestInfo.Command = GET then
        recvText := Utf8ToAnsi(Httpdecode(ARequestInfo.QueryParams))   //引用 Httpapp
      else if ARequestInfo.Command = POST then//post
        recvText := Utf8ToAnsi(ARequestInfo.FormParams);
if (Pos(LowerCase(/api/getBusinessHallStatus), LowerCase(ARequestInfo.Document)) = 1) then //查询营业厅状态接口
      begin
        RespStr := Httpserver_getBusinessHallStatus(recvText);
      end
      begin
        RespStr := URL路径未定义;
      end;
      AResponseInfo.ContentType := text/HTML;charset=utf-8;
      AResponseInfo.ContentText := AnsiToUtf8(RespStr);except
      on e: Exception do
      begin
        msgText := ErrorLog|【+FormatDateTime(yyyy-mm-dd hh:mm:ss,Now)+】执行HTTPServerCommandGet发生异常,原因::+e.Message;
        SendMessage(FrmMain.Handle,MYTHREAD_MESSAGE,Integer(@msgText),1);
      end;
    end;
  finally
    CoUninitialize;
  end;
end;

 

Delphi idHttpServer接收Http Get请求解码问题

原文:https://www.cnblogs.com/tc310/p/8466791.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!