将JSON传递给WCF Web方法

时间:2018-05-03 05:37:09

标签: json wcf

我有一个网络服务,其中一些客户在调用该应用时遇到问题。

问题与他们传入JSON,并将Content-Type标头指定为JSON有关,但WCF服务似乎不接受该标头,并且要么不要设置该标头,要么是设置为八位字节流。

奇怪的是,当Content-Type标头设置为application / json时,单独的Web方法可以正常工作。

以下是我遇到问题的方法的属性和声明

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "events/{eventId}/devices/{deviceId}/setid?ac={ac}")]
    OperationResult SetId(string eventId, string deviceId, string ac, Stream data);

这是该方法的属性和声明

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "activate?deviceId={deviceID}")]
OperationResult<ActivationResult> ActivateDevice(string deviceID, Stream data);

现在我知道它们是两种不同的方法,但是如果我提供application / json的Content-Type标头,但是激活方法有效,但是SetId方法没有。

在每个方法的实际实现中,流参数被转换为相应的JSON类。任何想法为什么这对两者都不起作用?

例外消息是&#39;操作的传入消息&#39; SetId&#39;包含一个无法识别的http正文格式值&#39; Json&#39;。预期的正文格式值是&#39; Raw&#39;

0 个答案:

没有答案