尝试创建一个简单的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'
我想你的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。