REST DataSnap 中的内容类型响应对我不起作用

Content-Type response in the REST DataSnap not working for me

我使用 Embarcadero® Delphi 10.4 Architect 中的向导构建了一个 DataSnap REST 服务器。我需要创建一个简单的方法来从客户端获取 PDF 文件,例如 Postman。

看完后写了下一段代码Return an image from a Delphi REST server and show it in a browser:

function TServerMethods1.GetPdf: TFileStream;
var
 fStream: TFileStream;
begin
 fStream := TFileStream.Create('images/ticket.pdf', fmOpenread or fmShareDenyNone);
 GetInvocationMetadata.ResponseContentType := 'application/pdf';
 Result := fStream;
end;

在 AfterDispatch 事件中:

procedure TWebModule1.WebModuleAfterDispatch(Sender: TObject; Request: TWebRequest;
  Response: TWebResponse; var Handled: Boolean);
begin
  Response.ContentType := 'application/pdf';
end;

但是当我从 postman 调用该方法时,出现错误,因为结果是 JSON 文件,而不是 PDF:

{"result":[[37,80,68,70,45,49,46,55,10,37,226,2...]]}

Content-Type 值正常。

我的代码有什么问题?

正如 Oliver 在评论中所说,只需将参数 ?json=false 添加到 URL

有效!!!