我尝试使用WCF向REST API提交请求;这就是我所做的:
namespace Sample
{
[ServiceContract]
[XmlSerializerFormat]
public interface ISampleApi
{
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "users.xml", ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml)]
User CreateUser(User user);
}
}
这是我的User
班级:
namespace Sample.Entity
{
[XmlRoot("user")]
public class User
{
[XmlElement("company")]
public string Company { get; set; }
[XmlElement("country-code")]
public string ContryCode { get; set; }
[XmlElement("created-at")]
public DateTime CreatedAt { get; set; }
[XmlElement("email")]
public string Email { get; set; }
[XmlElement("external-identifier")]
public string ExternalIdentifier { get; set; }
[XmlElement("id")]
public int Id { get; set; }
[XmlElement("measurement-system")]
public string MeasurmentSystem { get; set; }
[XmlElement("profile")]
public string Profile { get; set; }
[XmlElement("url")]
public string Url { get; set; }
[XmlElement("username")]
public string Username { get; set; }
[XmlElement("account-type")]
public string AccountType { get; set; }
}
}
但是当我调用CreateUser方法并将User对象传递给它时,我收到此错误消息:
远程服务器返回错误:(422)无法处理的实体。
知道是什么原因引起的吗?
答案 0 :(得分:7)
该异常意味着Web服务器响应了错误代码,即422.您需要与远程站点的管理员核实,为什么会这样。 (或者如果返回任何内容,请查看响应的正文,它可能包含一些提示)。
以下是错误代码422的说明:http://tools.ietf.org/html/rfc4918#section-11.2
您发送到服务器的请求很可能以某种方式无效。如果不知道您要向哪个系统发送哪个请求,那么确切的错误可能是无法判断的。
答案 1 :(得分:0)
如果XML请求正文包含格式正确(即语法正确)但语义错误的XML指令,则可能会出现此错误情况
重新检查users.xml以获取说明 country-code是字符串还是整数值?