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
)?