Delphi/C++Builder の TIdHTTPServer で POST受信
TIdHTTPServer で Postデータを受信しようと、HTMLを作成
TIdHttpServer の OnCommandGet イベントで、ARequestInfo からデータを取得しようとすると
multipart の記述で、Post を行う
PostStream へデータが入って OnCommandGet が呼び出される
TIdHttpServer の OnCommandGet イベントで、ARequestInfo からデータを取得しようとすると
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
if SameText(ARequestInfo.Command, 'POST') then begin
ARequestInfo.PostStream // ← nil
ARequestInfo.Params // ← こっちにデータが入っている
end;
end;
それじゃ Getの時と同じ? PostStream の役目は何なのかということでmultipart の記述で、Post を行う
PostStream へデータが入って OnCommandGet が呼び出される
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
if SameText(ARequestInfo.Command, 'POST') then begin
ARequestInfo.PostStream // ← マルチパートでデータが入っている
ARequestInfo.Params // ← こちらは中身がない
end;
end;
中身を確認してみるには
TMemoryStream(ARequestInfo.PostStream).SaveToFile('c:\post.txt');


コメント