Delphi idHttpServer接收Http Get请求解码问题
2021-02-13 02:20
标签:int text hal body har end dht get ttext 引用 Httpapp单元, Delphi idHttpServer接收Http Get请求解码问题 标签:int text hal body har end dht get ttext 原文地址:https://www.cnblogs.com/tc310/p/8466791.html
使用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请求解码问题
文章链接:http://soscw.com/index.php/essay/54707.html