안녕하세요, indy에서 IdHttpServer를 사용하여 매개 변수와 데이터를 검색하는 방법에 대한 도움이 필요합니다.TIdHTTPServer를 TIdMultiPartFormDataStream으로 처리하는 방법
많은 응용 프로그램에서 TIdMultiPartFormDataStream을 사용하여 PHP를 통해 데이터를 전송합니다. TIdHTTPServer를 사용하여 매개 변수를 확인하고 목적지로 요청을 전달하고 싶습니다.
나는 당신이 볼 수 있도록 간단한 예제를 만들었습니다.
uses
IdContext, IdMultipartFormData;
// Server Side------------------------------------------------
IdHTTPServer1.Defaultport := 88;
IdHTTPServer1.active := True;
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
// the request will be pass through its destination by POST/GET
// and send the result back to the client apps.
AResponseInfo.ContentText := ARequestInfo.Params.Text;
end;
// Client Side------------------------------------------------
// This will work using the standard Post or Get
procedure TForm1.btnPost1Click(Sender: TObject);
var
sl: TStringList;
res: String;
begin
sl := TStringList.Create;
try
sl.Add('Param1=Data1');
sl.Add('Param2=Data1');
sl.Add('Param3=Data2');
sl.Add('Param4=Data3');
res := IdHTTP1.Post('http://localhost:88/some.php', sl);
ShowMessage(res);
finally
sl.Free;
end;
end;
//how can i get the parameters and value for this code in my IdHttpServer
procedure TForm1.btnPost2Click(Sender: TObject);
var
mfd: TIdMultiPartFormDataStream;
res: String;
begin
mfd := TIdMultiPartFormDataStream.Create;
try
mfd.AddFormField('Param1', 'Data1');
mfd.AddFormField('Param2', 'Data1');
mfd.AddFormField('Param3', 'Data2');
mfd.AddFormField('Param4', 'Data3');
res := IdHTTP1.Post('http://localhost:88/some.php', mfd);
ShowMessage(res);
finally
mfd.Free;
end;
end;
클라이언트 응용 프로그램이 매개 변수의 TIdMultiPartFormDataStream 유형을 전달하는지 어떻게 알 수 있습니까?