我正在编写一个Android应用程序和一个WCF REST服务来调用它。当我尝试拨打某个方法时,我收到一条“错误请求”消息。在之前的测试中,我设法做了这个调用并且它工作了,但是在课程中的一些变化之后我再也不能了。
这是服务中的类:
public class Venda
{
public int Cod { get; set; }
public string Pedido { get; set; }
public int Cliente { get; set; }
public int Vendedor { get; set; }
public string Modo { get; set; }
public DateTime Data { get; set; }
public double Total { get; set; }
public string Observacoes { get; set; }
public string TipoPagto { get; set; }
public double Desconto { get; set; }
public int ST { get; set; }
public int GF { get; set; }
public List<DetalheVenda> DetalhesVenda { get; set; }
public Venda()
{
DetalhesVenda = new List<DetalheVenda>();
}
}
public class DetalheVenda
{
public int Cod { get; set; }
public string Pedido { get; set; }
public string Produto { get; set; }
public double Quantidade { get; set; }
public double ValorVenda { get; set; }
public double ValorCompra { get; set; }
public double ValorVendaMinimo { get; set; }
public int ST { get; set; }
public double Desconto { get; set; }
public int Vendedor { get; set; }
public int Cliente { get; set; }
public string Modo { get; set; }
public DateTime Data { get; set; }
public string Grade { get; set; }
public string SubGrade { get; set; }
}
方法接口和实现:
[OperationContract]
[WebInvoke(
Method = "POST",
UriTemplate = "AdicionaVenda",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
void AdicionaVenda(Venda venda);
//a breakingpoint nor enter here
public void AdicionaVenda(Venda venda)
{
repositorio.AdicionaVenda(venda);
}
这是我作为正文请求发送的JSON: { “文达语”: {“Cod”:null,“Pedido”:“1.1.56”,“Cliente”:0,“Vendedor”:1,“Modo”:“A prazo”,“Data”:“2014-02-22”, “Total”:0,“Observacoes”:“”,“TipoPagto”:“Tipo Teste”,“Desconto”:0,“ST”:1,“GF”:0, “DetalhesVenda”:[{ “鳕鱼”:NULL, “Pedido”: “1.1.56”, “Produto”: “13”, “Quantidade”:0 “ValorVenda”:9 “ValorCompra”:5“,ValorVendaMinimo “:0,”ST“:0,”Desconto“:0,”Vendedor“:0,”Cliente“:0,”Modo“:”A prazo“,”数据“:”2014-02-22“,”等级“:”1级“,”SubGrade“:”路基1“}]}}
答案 0 :(得分:1)
实际上,在你的模型类中提交DateTime
并不是问题,但它来自.NET。
有no standard JSON format of Date。这就是您遇到此问题的原因。有两种解决方案:
使用JSON.NET。
或者,在模型类中将日期类型设置为String
,稍后在收到json时将其解析为DateTime
。
请参阅以下链接:
The Right JSON Date Format和Incompatible date format in JSON from response。
答案 1 :(得分:0)
我发现问题是模型服务类中的DateTime新字段。