Delphi/C++Builder の TIdHTTPServer で POST受信
TIdHTTPServer で Postデータを受信しようと、HTMLを作成
TIdHttpServer の OnCommandGet イベントで、ARequestInfo からデータを取得しようとすると
それじゃ Getの時と同じ? PostStream の役目は何なのかということで
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;
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');
コメント