WCF服务方法返回json或soap

发布于 2024-11-03 09:18:59 字数 254 浏览 0 评论 0原文

我读过很多关于在 WCF 方法中检索/返回 json 对象的文章。如果我错了,请纠正我:除了在服务方法之前的 WebInvoke 之外,在配置中添加端点和 WebHTTp 行为可以使服务方法返回 json 对象。

webinvoke 的使用使得该方法非常特定于某种格式(此处为 json)。问题是我已经有一个 WCF SOAP 服务,并且我想重用该服务方法以便能够返回 XML 或 JSON 对象。有没有办法使方法通用并根据使用的端点或用于访问我的服务方法的平台更改响应格式?

I have been reading lot of posts on retrieving/returning json objects in a WCF method. Correct me if I am wrong: Adding an endpoint and WebHTTp behavior in the config in addition to WebInvoke before a service method enables json objects to be returned by a service method.

The use of webinvoke makes the method very specific to a certain format (json here). The issue is I already have a WCF SOAP service and I want to reuse the service methods to be able to return both XML or JSON objects. Is there a way to make the methods generic and change the response format based on the endpoints used or the platforms used to access my service method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

素罗衫 2024-11-10 09:18:59

是的,这是可能的。 JSON 和 SOAP 需要不同的绑定,因此您的服务需要两个端点 - 第一个具有 webHttpBindingwebHttp 端点行为,第二个具有 basicHttpBinding 或其他面向 SOAP 的绑定。这些端点必须具有不同的相对地址。

如果您想在 REST 服务中支持 JSON 和 XML(POX 而非 SOAP)格式,您可以通过在 webHttp< 中定义 automaticFormatSelectionEnabled="true" 在 WCF 4 中的同一端点上实现此操作/code> 用于 REST 端点的行为。这允许端点返回 JSON 或 XML 格式的数据。格式的选择基于传入请求的格式,因此 JSON 格式的请求将获得 JSON 格式的响应,XML 格式的请求将获得 XML 格式的响应。

Yes it is possible. JSON and SOAP need different bindings so your service needs two endpoints - one with webHttpBinding and webHttp endpoint behavior and second with basicHttpBinding or other SOAP oriented binding. These endpoints must have different relative addresses.

If you want to support both JSON and XML (POX not SOAP) formats in REST service you can do it on the same endpoint in WCF 4 by defining automaticFormatSelectionEnabled="true" in the webHttp behavior used for the REST endpoint. This allows the endpoint to return the data formatted either as JSON or as XML. The choice of the format is based on the format of incoming request so a request in JSON will get a response in JSON and a request in XML will get a response in XML.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文