如何使用POST和JSON将对象数组发送到restful WCF

时间:2014-12-16 21:27:37

标签: json wcf rest

当我尝试使用POST方法发送json时,我收到错误

[{"ExtensionData":null,"Date":"12/16/2014 22:11:16","IsPlayer":false,"MagicInfo":null,"SpellInfo":null},{"ExtensionData":null,"Date":"12/16/2014 22:11:16","IsPlayer":false,"MagicInfo":null,"SpellInfo":null}]

服务:

[WebInvoke(UriTemplate = "InsertCastActivities", Method = "POST",
                    RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
bool InsertCastActivities(List<CastActivityDto> castActivitiesDto);
  

远程服务器返回错误:(400)错误请求。请求错误   服务器遇到处理请求的错误。见服务器   记录更多详细信息。

2 个答案:

答案 0 :(得分:0)

类CastActivityDto的定义是什么? 您必须定义DataContract和Datamember属性。

所以上课必须是这样的

[DataContract]
public class CastActivityDto
{
   [DataMember]
   public string SomeAttribute { get;set;}

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

然后您可以以格式

发布JSON数据
{
  castActivitiesDto :
  [
     {SomeAttribute : "1", AnotherAttribute : "1" },
     {SomeAttribute : "2", AnotherAttribute : "2" }
  ]   
}; 

答案 1 :(得分:0)

这是DATETIME类型错误。

当它是:

[DataMember]
public virtual String Time
{
    get { return this.date.ToString(); }
    set
    {
        this.date = value != null ? DateTime.Parse(value) : DateTime.Now;
    }
}

一切正常! :)