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

2021-02-13 02:20

阅读:614

标签:int   text   hal   body   har   end   dht   get   ttext   

引用 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请求解码问题

标签:int   text   hal   body   har   end   dht   get   ttext   

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


评论


亲,登录后才可以留言!