WCF不尊重RequestFormat

问题描述 投票:0回答:1

尝试创建一个简单的WCF服务,该服务充当一个宁静的端点。希望有人能看到我所缺少的东西。

[OperationContract]
[WebInvoke(Method ="POST", UriTemplate = "TestJson", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        string TestJson(CompositeType composite);

从邮递员我得到

无法处理消息,因为内容类型'application / json'不是预期的'text / xml;字符集= UTF-8'

c# wcf
1个回答
0
投票

我想你的web.config文件有问题。你应该添加basicHttpBinding肥皂服务和webHttpBinding为宁静的服务。如果你想要它们两个你也应该添加mexHttpBinding。这样的事情:

<bindings>
    <basicHttpBinding>
        <binding name="SoapBinding" />
    </basicHttpBinding>
    <webHttpBinding>
        <binding name="RestBinding" />
    </webHttpBinding>
    <mexHttpBinding>
        <binding name="MexBinding" />
    </mexHttpBinding>
</bindings>

那么您可以将json格式设置为默认格式,如下所示:

    <endpointBehaviors>
        <behavior name="Web">
            <webHttp helpEnabled="true" defaultBodyStyle="Bare" defaultOutgoingResponseFormat="Json" automaticFormatSelectionEnabled="true" />
        </behavior>
    </endpointBehaviors> 

现在你很高兴。只需记住在请求标题中设置content-type。

© www.soinside.com 2019 - 2024. All rights reserved.