5

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

沿着同样的想法,是否可以更改默认的响应正文?目前,它正在返回{"error":"USER is not authorized to perform the requested action."},这很好,但如果可能的话,我想返回一个自定义 JSON 对象。

谢谢你的时间!

4

2 回答 2

5

我最终在 TDSAuthenticationManager.OnUserAuthorize 中执行了看起来像这样的代码


  if valid = false then
  begin
    GetInvocationMetadata.ResponseCode := 403;
    GetInvocationMetadata.ResponseMessage := JSONResponseObject.ToString;
    GetInvocationMetadata.ResponseContent := JSONResponseOjbect.ToString;
  end
于 2013-09-19T22:29:56.920 回答
2

可以在服务器类中获取 THTTPDSResponse 吗?前任:

TServerClass1.EchoString(val: string);
begin
  GetDSResponse.Header.Add('someheader');
end;
于 2015-05-21T18:55:56.433 回答