delphi中的idhttpserver如何才能收到idhttp发送来的exe\rar文件呢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中的idhttpserver如何才能收到idhttp发送来的exe\rar文件呢相关的知识,希望对你有一定的参考价值。

我用idhttp发送文件,idhttpserver只能收到txt之类的文件.
郁闷死我了

参考技术A 用字符串流的形式发送给SERVER

sr:string;
//把你的流转字符串
stringstream:=TStringStream.Create(sr);
self.IdscrreenHTTP.Post('http://127.0.0.1:5555',stringstream);

服务器端接收的值在这里
ARequestInfo.FormParams

//流到字符串
function StreamToString(AStream: TStream): string;
begin
if AStream.Size = 0 then
Result := ''
else
begin
setlength(Result, AStream.Size);
AStream.Position := 0;
AStream.Read(Result[1], AStream.Size);
end;
end;

如果不明白可加QQ646320175

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

引用 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如何才能收到idhttp发送来的exe\rar文件呢的主要内容,如果未能解决你的问题,请参考以下文章

如何调用 Delphi 程序来生成 HTML 页面内容

Delphi 2010 - 套接字端口 119 不起作用

不知道如何才能用delphi取得本机的ip地址啊????

IdHTTPServer(indy10)开发REST中间件

indy10的idhttpServer应答字符串

IdHttpServer实现webservice