这个问题很多年前就在Delphi-PRAXIS上被问到了,但是这个问题中描述的方法现在已经不起作用了,而且是基于MARS的一个非常旧的版本。
基本上,这个人发布的内容和所问的内容,就是我在问的内容。这是他的代码:
[Path('projectX')]
TProjectXServicesResource = class
protected
public
[GET, Produces(TMediaType.TEXT_HTML)]
function xHome([QueryParam] lang : String) : String;
[POST, Consumes(TMediaType.MULTIPART_FORM_DATA), Produces(TMediaType.TEXT_HTML)]
function xAction([FormParams] AParams: TArray<TFormParam>): String;
end;
function TProjectXServicesResource.xHome([QueryParam] lang : String) : String;
begin
// Need access to the client's IP here
end;
function TProjectXServicesResource.xAction([FormParams] AParams: TArray<TFormParam>) : String;
begin
// Need access to the client's IP here
end;
字符串
我需要知道端点函数(xHome
和xAction
)中的IP地址是什么。TWebRequest
似乎不再存在于MARS中。火星发生了很多变化。
有人能帮忙吗?
1条答案
按热度按时间ttygqcqt1#
这花了我一段时间才找到,但基本上,有一个名为
IMARSRequest
的新接口,来自MARS.Core.RequestAndResponse.Interfaces
单元,您可以使用它。它的工作原理与旧的
TWebRequest
非常相似。使用下面的代码,通过将
[Context] MarsRequest: IMARSRequest;
添加到protected
字段,您可以从任何类函数访问marsRequest.GetRemoteIP
,例如从xHome
和xAction
:字符串
对于一些添加的信息,您还可以将其用于单个端点,而不是类中的每个端点。您可以将其作为函数中的参数添加,如以下简短的代码示例:
型