gpt4 book ai didi

c# - 在 WCF REST 服务中禁用 XML 示例?

转载 作者:太空狗 更新时间:2023-10-29 23:32:48 26 4
gpt4 key购买 nike

我有一个 REST 服务,有多个客户端使用它,据我所知,该服务设置为仅在执行 POST/PUT 时接受 JSON(并且仅在所有调用时返回 JSON)。问题是在服务/帮助页面上,它同时显示了 JSON 和 XML 的示例。有没有一种方法可以删除所有额外的 XML 垃圾以免混淆用户(因为服务只接受 JSON)并且只在/help 页面上显示 JSON 示例?这是我的 Web.config:

<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false" defaultOutgoingResponseFormat="Json" />
</webHttpEndpoint>
</standardEndpoints>

我的每个 GetGets/WebInvokes 都以 JSON 格式定义,例如:

[WebInvoke(UriTemplate = "/sample", BodyStyle = WebMessageBodyStyle.Bare, Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]

那么,还有什么我可以做的让服务知道它是 JSON only 并删除自动生成的 XML 垃圾使我的/help 页面变得困惑吗?

最佳答案

获取你的 Microsoft.ApplicationServer.Http.HttpConfiguration 配置并删除它的 XmlFormatter(它默认有一个 JSON 格式化程序和一个 XML 格式化程序)。

var config = new Microsoft.ApplicationServer.Http.HttpConfiguration();
config.Formatters.Remove(config.Formatters.XmlFormatter);

现在您可以使用此配置创建一个 HttpServiceHostFactory,并使用它来注册路由。

//RouteTable is of type System.Web.Routing.RouteCollection
RouteTable.Add(new WebApiRoute(
"MyService",
new HttpServiceHostFactory { Configuration = config },
typeof(MyService)));

除了“它对我有用”之外,我没有任何可靠的消息来源。

关于c# - 在 WCF REST 服务中禁用 XML 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14075004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com