引用 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;