我正在使用Postman扩展并尝试将 Xml post request 发送到我的网络API .
Sample Model:
[DataContract(Namespace = "")]
public class Employee
{
[DataMember]
[Range(10000, 99999)]
public int Id { get; set; }
[DataMember]
public string FirstName { get; set; }
[DataMember]
[Required]
[MaxLength(20)]
public string LastName { get; set; }
}
Postman Request:
在执行请求时,我总是在我的控制器的 post method 中获得 null employee object .
如果我发送 JSON 请求,那么它工作正常 .
我也尝试在DataContract属性中提供命名空间,但它不起作用 .
1 回答
我遇到了和你一样的问题,但我按照以下方式设置了我的课程:
来自XML的数据会自动映射到您的Employee类 .
我的问题是,XML是区分大小写的 . 确保所有XML参数名称与您的类参数匹配 . 它只需要一个参数就会出错,整个请求将为null . 检查请求对象下的调试日志树是否看到以下错误(您必须搜索它,但它在那里):
如果你看到那么有一个参数不正确 . 按参数发送请求参数,直到找到错误的参数 .
至于从XML到XML的序列化,请确保startup.cs只有以下代码:
在您的控制器中,将类顶部的注释设置为:
并在您的路由方法上将其设置为:
可悲的是,我在这个问题上失去了一天半 . 这个链接很有用:
https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding
甚至更多的灵魂摧毁是其他人也遇到了同样的问题 . 然而,他们已经解决了这个问题,但没有礼貌地告诉别人 .
提示:尝试使用SoapUI的免费版本,它还有一些真正有助于调试的功能 .