我正在使用 Indy 使用 HTTP 构建客户端和服务器应用程序。在客户端上,我正在使用TIdHTTP
,而在服务器上,我正在使用TIdHTTPWebBrokerBridge
Web 模块。我需要客户端能够通过流将任何类型的数据发布到服务器。这是通过我调用的通用命令完成的,用于身份验证的 API 密钥/set?Key=API_KEY&Name=FILE_NAME
在哪里,并且是正在发布的文件的名称。Key
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
后代发送的数据?我不需要知道如何保存或处理请求,我只需要知道如何从 Request( TWebRequest
) 中获取这个 Stream?