C# WCF Rest服务接收对象为null

C# WCF Rest服务接收对象为null,c#,android,wcf,rest,C#,Android,Wcf,Rest,我有WCF rest服务,它需要对象作为输入 [WebInvoke(Method = "POST", UriTemplate = "SaveItem", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]

我有WCF rest服务,它需要对象作为输入

[WebInvoke(Method = "POST",
            UriTemplate = "SaveItem",
            ResponseFormat = WebMessageFormat.Json,
            RequestFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Wrapped)]
        [OperationContract]
        public string SaveItem(Item item)
        {
            string retValue;
            using (var business = new ItemBusiness())
            {
                retValue = business.SaveItem(item).ToString();
            }

            return retValue;
        }
Item类如下所示

 [DataContract]
    public class Item
    {
        [DataMember]
        public string UserId { get; set; }
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public string Description { get; set; }
        [DataMember]
        public string Cost { get; set; }
        //[DataMember]
        //public string AvailableQunatity { get; set; }
        [DataMember]
        public string IsNegotiable { get; set; }
        [DataMember]
        public string LocationLat { get; set; }
        [DataMember]
        public string LocationLong { get; set; }
        [DataMember]
        public string Condition { get; set; }
        [DataMember]
        public string DeliveryType { get; set; }

        [DataMember]
        public string PostalCode { get; set; }

        [DataMember]
        public string Category { get; set; }

    }
我正在从android应用程序传递json

{“UserId”:“1”,“Name”:“1”,“Description”:“1”,“Cost”:“1”,“iscoverable”:“1”,“LocationLat”:“1”,“LocationLong”:“1”,“Condition”:“1”,“DeliveryType”:“1”,“PostalCode”:“1”,“Category”:“13”}

但WCF方法将项获取为null,不确定原因

任何帮助都将不胜感激

谢谢

编辑


终于开始工作了…将WebMessageBodyStyle.Wrapped改为WebMessageBodyStyle.Bare,谢谢分享您的解决方案。我需要WebMessageBodyStyle.Bare,但我的另一个问题是,根据其他网站上的建议,我的JSON被包装在父“节点”中,如下所示:

Not Working --> {"MethodParamName":[{"prop1":"value1","prop2":"value2"}]}
但是我的JSON总是空的。但是,一旦我删除了JSON的“父节点”,我的WCF最终可以读取该对象:

Working --> {"prop1":"value1","prop2":"value2"}

您能显示用于发送对象的代码吗?我建议检查的第一件事是您使用的是POST请求,而不是GET with参数。Android代码是否指定了内容类型标头。是的,它添加了标头。。在使用postman进行测试时,我还尝试在Postanim中添加text/json。在安卓系统中,我使用volly发送请求。是的,它的帖子终于成功了…将WebMessageBodyStyle.Wrapped改为WebMessageBodyStyle.Bare