Indyを使用して、HTTPを使用してクライアントアプリケーションとサーバーアプリケーションの両方を構築しています。クライアントでは、WebモジュールでTIdHTTP使用しており、サーバーでは使用しています。TIdHTTPWebBrokerBridgeクライアントがストリームを介してサーバーに任意のタイプのデータを投稿できるようにする必要があります。これは、私が呼び出したユニバーサルコマンドを介して実行されます。/set?Key=API_KEY&Name=FILE_NAMEここKeyで、は認証用のAPIキーであり、Nameは投稿されるファイルの名前です。
クライアントでは、次のようにデータを投稿しています。
function TInnoCloudClient.SetData(const Name: String; AStream: TStream): Bool;
var
U: String;
begin
U:= FServerURL; //Base URL of Server
if Copy(U, Length(U)-1, 1) <> '/' then
U:= U + '/';
U:= U + 'get?Key='+Encode(FAPIKey);
U:= U + '&Name='+Encode(Name);
try
FWeb.Post(U, AStream);
except
on e: exception do begin
//Handle Exception
end;
end;
end;
この関数は、内部のデータをファイル名が。AStreamのサーバー上のファイルに保存することになっていますName。ただし、サーバー側では、リクエストハンドラーに、TStreamこれを読み取ることができる対応するプロパティがリクエストに表示されません。
TStreamサーバーで、子孫として送信したデータを取得するにはどうすればよいですか?保存方法やリクエストの処理方法を知る必要はありません。リクエストからこのストリームを取得するにはどうすればよいですか(TWebRequest)?