我正在尝试对 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}}
高温高压