你知道如何手动上TISAPIRequest添加自定义标题?
这个类(或最通用的TWebRequest)不公开RawHeaders属性,以允许在需要的时候增加新的自定义页眉。
PS:我有,当我的WebRequest是TIdHTTPAppRequest(的DataSnap独立服务器)一个肮脏的解决方案,因为这样我可以创建一个辅助类来访问其私人FRequestInfo财产,并从那里获取一个RawHeaders,我可以用它来添加新的标题。 但我只使用独立服务器用于开发和测试,生产环境必须在IIS服务器上运行。
TIdHTTPAppRequestHelper = class helper for TIdHTTPAppRequest
public
function GetRequestInfo: TIdEntityHeaderInfo;
end;
implementation
function TIdHTTPAppRequestHelper.GetRequestInfo: TIdEntityHeaderInfo;
begin
Result := FRequestInfo;
end;
procedure TWebModule1.WebModuleBeforeDispatch(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var Token: string;
begin
Response.SetCustomHeader('Access-Control-Allow-Origin','*');
Token := Request.Query;
if Copy(Token, 1, 10) = 'dssession=' then begin
if Request is TIdHTTPAppRequest then begin
TIdHTTPAppRequest(Request).GetRequestInfo.RawHeaders.AddValue('Pragma', Token);
end;
end;
if FServerFunctionInvokerAction <> nil then
FServerFunctionInvokerAction.Enabled := AllowServerFunctionInvoker;
end;
它可以编写类似的代码,以获得相同的结果(对自定义标题添加到您的WebRequest)当WebRequest的是TISAPIRequest而不是THTTPAppRequest?
谢谢。