简体   繁体   English

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

[英]POST json into WCF service returning (400 BAD request)

I Trying to POST a json data into self hosted WCF service 我尝试将json数据发布到自托管WCF服务

POST is working good when json string such as 当json字符串(例如

{"data": "testdata"}

same POST is doesn't working and returning 400 (Bad Request) error message when json string as 当json字符串为时,相同的POST不起作用并返回400(错误请求)错误消息

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

And this is my WCF service Code 这是我的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

What is difference between json string and nested json string in my case 在我的例子中,json字符串和嵌套json字符串之间有什么区别

And how can i solve my problem 我怎样才能解决我的问题

Thanks. 谢谢。

WCF cannot deserialize complex object represented in json into string . WCF无法将json中表示的复杂对象反序列化为string In order to make the example work you need to accept a collection of complex objects in operation 为了使示例工作,您需要接受操作中的复杂对象的集合

//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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM