POST json в службу WCF возвращается (запрос 400 BAD) - PullRequest
0 голосов
/ 14 марта 2019

I Попытка POST-данных json в автономный сервис WCF

POST работает хорошо, когда строка json, такая как

{"data": "testdata"}

, то же POST не работает и возвращает 400 (Bad Request) сообщение об ошибке, когда строка json имеет вид

{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 в моем случае

И как мне решить мою проблему

Спасибо.

1 Ответ

0 голосов
/ 18 марта 2019

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...