调用REST WCF Web服务时出现错误请求

时间:2014-02-22 21:15:35

标签: android json web-services wcf rest

我正在编写一个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“}]}}

2 个答案:

答案 0 :(得分:1)

实际上,在你的模型类中提交DateTime并不是问题,但它来自.NET。

no standard JSON format of Date。这就是您遇到此问题的原因。有两种解决方案:

  1. 使用JSON.NET

  2. 或者,在模型类中将日期类型设置为String,稍后在收到json时将其解析为DateTime

  3. 请参阅以下链接:

    The Right JSON Date FormatIncompatible date format in JSON from response

答案 1 :(得分:0)

我发现问题是模型服务类中的DateTime新字段。