Delphi indy TIdHTTP TIdHTTPServer Post Get

TIdHTTPServer :

  try
    IdHTTPServer1.Bindings.Clear;
    //要绑定的端口,一定设置此项,这是真正要绑定的端口;
    IdHTTPServer1.DefaultPort:=8099;
    IdHTTPServer1.Bindings.Add.IP := '127.0.0.1';
    //启动服务器
    IdHTTPServer1.Active := True;
    Memo1.Lines.Add('启动');
  except
     showmessage('启动失败!');
  end;

procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  Memo1.Lines.Add(ARequestInfo.Document);
  Memo1.Lines.Add(ARequestInfo.QueryParams);
  Memo1.Lines.Add(ARequestInfo.Params.Values['Par1'] );
  Memo1.Lines.Add(ARequestInfo.Params.Values['Par2'] );
  Memo1.Lines.Add(ARequestInfo.Command);
  Memo1.Lines.Add(ARequestInfo.URI);

  AResponseInfo.ContentEncoding:='utf-8';
  AResponseInfo.ContentType :='text/html';
  AResponseInfo.ContentText:='<html><body>好</body></html>';

  //发html文件
   {AResponseInfo.ContentEncoding:='utf-8';
   AResponseInfo.ContentType :='text/html';
   AResponseInfo.ContentText:='<html><body>好</body></html>'; }
   //发xml文件
   {AResponseInfo.ContentType :='text/xml';
   AResponseInfo.ContentText:='<?xml version="1.0" encoding="utf-8"?>'
   +'<students>'
   +'<student sex = "male"><name>'+AnsiToUtf8('陈')+'</name><age>14</age></student>'
   +'<student sex = "female"><name>bb</name><age>16</age></student>'
   +'</students>';}

end;

 

TIdHTTP :

procedure TForm1.Button2Click(Sender: TObject);
var
  URL: string;
  StrR: string;
  RequestStream : TStringStream;
begin
  URL := 'http://172.23.4.120:8099/test';
  IdHttp1.Request.ContentType :='application/x-www-form-urlencoded';
  RequestStream := TStringStream.Create('Par1=1&Par2=2', TEncoding.UTF8);
  RequestStream.Position := 0;

  StrR := IdHTTP1.Post(URL, RequestStream);
  Memo2.Lines.Add(StrR);

  FreeAndNil(RequestStream);
end;

 

TIdHTTPServer :

  try
    IdHTTPServer1.Bindings.Clear;
    //要绑定的端口,一定设置此项,这是真正要绑定的端口;
    IdHTTPServer1.DefaultPort:=8099;
    IdHTTPServer1.Bindings.Add.IP := '127.0.0.1';
    //启动服务器
    IdHTTPServer1.Active := True;
    Memo1.Lines.Add('启动');
  except
     showmessage('启动失败!');
  end;

procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  Memo1.Lines.Add(ARequestInfo.Document);
  Memo1.Lines.Add(ARequestInfo.QueryParams);
  Memo1.Lines.Add(ARequestInfo.Params.Values['Par1'] );
  Memo1.Lines.Add(ARequestInfo.Params.Values['Par2'] );
  Memo1.Lines.Add(ARequestInfo.Command);
  Memo1.Lines.Add(ARequestInfo.URI);

  AResponseInfo.ContentEncoding:='utf-8';
  AResponseInfo.ContentType :='text/html';
  AResponseInfo.ContentText:='<html><body>好</body></html>';

  //发html文件
   {AResponseInfo.ContentEncoding:='utf-8';
   AResponseInfo.ContentType :='text/html';
   AResponseInfo.ContentText:='<html><body>好</body></html>'; }
   //发xml文件
   {AResponseInfo.ContentType :='text/xml';
   AResponseInfo.ContentText:='<?xml version="1.0" encoding="utf-8"?>'
   +'<students>'
   +'<student sex = "male"><name>'+AnsiToUtf8('陈')+'</name><age>14</age></student>'
   +'<student sex = "female"><name>bb</name><age>16</age></student>'
   +'</students>';}

end;

 

如果在同一电脑上运行多个IdHTTPServer实例,IdHTTPServer使用时候,一定要注意“DefaultPort”属性,其实真正绑定端口是这个属性决定的,所以希望IdHTTPServer绑定在那个端口上,应该把要绑定的端口设置在“DefaultPort”上,否则会出现端口被占用的情况。

      //设置绑定参数
      IdHTTPServer1.Bindings.Clear;
      IdHTTPServer1.DefaultPort:= 要绑定的端口,一定设置此项,这是真正要绑定的端口;
      IdHTTPServer1.Bindings.Add.IP := '127.0.0.1';

        //启动服务器
      IdHTTPServer1.Active := True;

Posted on 2018-09-01 20:08  建业软件  阅读(1208)  评论(0)    收藏  举报