加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – WCF SOAP服务不能将JSON作为输出返回吗?

发布时间:2020-12-15 07:43:22 所属栏目:百科 来源:网络整理
导读:历史 我基本上是一个前端(android)开发人员,从来没有必要创建一个Web服务 相反,我在消费端. 现在这个WCF业务势不可挡,我认为学习曲线非常复杂. 任务 我需要创建一个简单的SOAP服务,hello world暂时需要输入XML,但是返回JSON. 我不确定为什么我们在互联网上没
历史

我基本上是一个前端(android)开发人员,从来没有必要创建一个Web服务
相反,我在消费端.
现在这个WCF业务势不可挡,我认为学习曲线非常复杂.

任务

我需要创建一个简单的SOAP服务,hello world暂时需要输入XML,但是返回JSON.

我不确定为什么我们在互联网上没有类似的问题,有点让我想知道它是否根本不可能?

这就是我到目前为止所拥有的.

目前的进展

我的合同

[ServiceContract]
    public interface IHelloWorldService
    {
        [OperationContract]
        String GetMessage(String name);
    }

我的合同Impl

public string GetMessage(string name)
        {
            return "Hello World from " + name + "!";
        }

我的服务配置(在Web.Config.我已经在asp.net网站上托管了这项服务)

<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MyServiceTypeBehaviors">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="WebBehavior">
          <webHttp defaultOutgoingResponseFormat="Json" />
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <services>
      <service name="MyWcfServices.HelloWorldService"          behaviorConfiguration="MyServiceTypeBehaviors">
        <endpoint address="" binding="wsHttpBinding"       behaviorConfiguration="WebBehavior"     contract="MyWcfServices.IHelloWorldService"/>
        <endpoint contract="IMetadataExchange"            binding="mexHttpBinding" address="mex"/>
      </service>
    </services>
  </system.serviceModel>

问题

> SOAP是否与XML密切相关?这样你就不能发送JSON作为输出?
>将JSON作为输出发送是否真的需要转到REST范例?
>我是否每次都获得XML,因为我正在使用带有HTTP头的WCFStorm fiddles并默认发送XML mime类型?
>我如何测试返回JSON的WCF服务?我有任何测试客户端吗?我下载了一个名为Wizdler的Chrome扩展程序,但出于某种原因它只适用于绑定“basicHttpBinding”.有人告诉我,如果我想创建一个SOAP服务,我就不能使用这个绑定.

如果你们能指出我正确的方向,我真的感激不尽.我在这个网络服务中只有2天的时间,所以我为我的天真而道歉.

解决方法

SOAP完全依赖于XML来提供消息传递服务,因此如果您确实需要/需要返回JSON,那么您需要将它包装在SOAP XML主体中的CDATA中.但是,与SOAP不同,REST不必使用XML来提供响应,因此您可以输出其他格式的数据,例如JSON.

http://blog.smartbear.com/apis/understanding-soap-and-rest-basics/

您可能需要考虑使用WCF来提供REST-ful服务而不是基于SOAP的服务.

https://msdn.microsoft.com/en-us/magazine/dd315413.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读