2014-02-22 71 views
0

我正在编写一个Android应用程序和一个WCF REST服务来调用它。当我尝试打电话给某种方法时,我收到“错误的请求”消息。在之前的测试中,我设法做了这个调用,并且它的工作,但是在一些课程上的变化之后,我再也不能做了。调用REST WCF WebService时的错误请求

这是服务类:

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”:“Prazo”,“Data”:“2014-02-22”, “Total”:0,“Observacoes”:“”“TipoPagto”:“Tipo Teste”,“Desconto”:0,“ST”:1,“GF”:0, “DetalhesVenda”:[{“ :空, “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”,“Data”:“2014-02-22”,“Grade”:“grade 1”,“SubGrade”:“路基1”}]}}

回答

1

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

还有no standard JSON format of Date。这就是为什么你面临这个问题。有两种解决方案:

  1. 使用JSON.NET

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

请参见以下链接:

The Right JSON Date FormatIncompatible date format in JSON from response

+0

是的,我做了第二个选项。 –

+0

我也是遵循相同的方法:) –

0

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