当datasnap服务器中的用户授权失败时,是否可以更改响应代码?

时间:2013-05-21 16:10:41

标签: delphi datasnap

当用户授权失败时,是否可以在我的DataSnap(Delphi XE3)服务器中更改HTTP响应代码?目前它正在返回 HTTP / 1.1 500内部服务器错误,这可能发生在许多其他情况下,并没有帮助描述问题。

沿着同样的想法,是否可以更改默认的响应主体?目前,它正在返回 {“error”:“USER无权执行请求的操作。”} ,这很好,但我想尽可能返回自定义JSON对象。

谢谢你的时间!

2 个答案:

答案 0 :(得分:5)

我最终在TDSAuthenticationManager.OnUserAuthorize中执行了类似的代码


  if valid = false then
  begin
    GetInvocationMetadata.ResponseCode := 403;
    GetInvocationMetadata.ResponseMessage := JSONResponseObject.ToString;
    GetInvocationMetadata.ResponseContent := JSONResponseOjbect.ToString;
  end

答案 1 :(得分:2)

可以在服务器类中获取THTTPDSResponse吗?例如:

TServerClass1.EchoString(val: string);
begin
  GetDSResponse.Header.Add('someheader');
end;