POST json进入WCF服务返回(400 BAD请求)

问题描述 投票:0回答:1

我尝试将json数据发布到自托管WCF服务

当json字符串如此时,POST工作正常

{"data": "testdata"}

当json字符串为时,相同的POST不起作用并返回400(错误请求)错误消息

{data: [{
     data1: "testvalue1",
     data2: "testvalue2",
     data3: "testvalue3",
     data4: "testvalue4",
}]
}

这是我的WCF服务代码

<OperationContract>
<WebInvoke(Method:="POST", ResponseFormat:=WebMessageFormat.Json, RequestFormat:=WebMessageFormat.Json, BodyStyle:=WebMessageBodyStyle.Wrapped)>
Private Function DoWork(ByVal data As string) As system.servicemodel.channels.message

    // DO SOMETHING WITH DATA

end function

在我的例子中,json字符串和嵌套json字符串之间有什么区别

我怎样才能解决我的问题

谢谢。

json wcf
1个回答
0
投票

WCF无法将json中表示的复杂对象反序列化为string。为了使示例工作,您需要接受操作中的复杂对象的集合

//complex object class
[DataContract]
public class DataModel
{
    [DataMember(Name = "data1")]
    public string Data1 { get; set; }

    [DataMember(Name = "data2")]
    public string Data2 { get; set; }

    [DataMember(Name = "data3")]
    public string Data3 { get; set; }

    [DataMember(Name = "data4")]
    public string Data4 { get; set; }
}

private Message DoWork(List<DataModel> data)
© www.soinside.com 2019 - 2024. All rights reserved.