1

我正在尝试对 RESTful 服务进行 WCF POST 调用,但我提供的对象似乎没有被服务器正确反序列化并设置为 null。

WCF 服务:

[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat =      WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "BuildItems")]
void Upgrade(BuildItem item);

客户端代码:

public void Upgrade(BuildItem item)
{
    string uri = string.Format(@"http://localhost:9001/AFMServer" + "/BuildItems");
    var request = HttpWebRequest.Create(uri);
    request.Method = "POST";
    request.ContentType = "application/json; charset=utf-8";
    string json = JsonConvert.SerializeObject(item);

    using (var streamWriter = new StreamWriter(request.GetRequestStream()))
    {
        streamWriter.Write(json);
        streamWriter.Close();
    }
    request.GetResponse();
}

该服务被称为属性服务器端,但 BuildItem 为空。

知道我做错了什么吗?

谢谢

编辑 - 发现问题。由于我使用“Wrapped”需要用参数名称包装对象:

{"item":{"CompletionDateTime":"/Date(-62135596800000+0000)/","Id":0,"ItemId":7,"ItemType":0}}

高温高压

4

0 回答 0