【问题标题】:How do I get my Delphi XE5 DataSnap REST server to return XML and not JSON?如何让我的 Delphi XE5 DataSnap REST 服务器返回 XML 而不是 JSON?
【发布时间】:2014-01-08 16:02:55
【问题描述】:

我有一个正常运行的 Delphi XE5 DataSnap 服务器,但默认情况下它总是返回 JSON。

如何让服务器返回 XML 格式的结果而不是 JSON?

我查看了 TDSServer、TDSHTTPWebDispatcher 和 TDSServerClass 组件,但找不到让我选择使用 JSON 还是 XML 的属性。

【问题讨论】:

  • 可能是因为DataSnap只支持JSON?
  • 哦,我从 Marco Cantu 的技术说明“使用 DataSnap 在 Delphi XE 中的 REST 服务器”中得到了印象,它支持 JSON 和 XML。引用:“虽然 Web 服务使用 XML 或 JSON,但 Delphi REST 服务器默认使用后者。”。 “默认为后者”是否意味着它只支持JSON?
  • AFAIK,DataSnap REST 绑定到 JSON。如果您需要 XML,您可以查看 InternetExpress:docwiki.embarcadero.com/RADStudio/XE5/en/…

标签: xml json delphi rest datasnap


【解决方案1】:

如果要返回XML,直接填写responsecontent:

uses DBXPlatform;

function TServerMethods1.EchoString(Value: string): string;
var
  metaData: TDSInvocationMetadata;
  i: integer;
begin
  metaData := GetInvocationMetadata;
  for i := 0 to Pred(metaData.QueryParams.Count) do
  begin
    Result := Result + '<param>' + metaData.QueryParams[i] + '</param>';
  end;
  metaData.ResponseContent := '<xml>' + Result + '</xml>';
end;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多