我在ASP .NET MVC 2项目中使用RestSharp。尝试创建RestRequest(使用POST方法)并添加两个枚举值(我的枚举类型 - OrderStatusFlags)来请求正文 - 使用内置的RestSharp XmlSerializer:
var request = new RestRequest("orders/{vendorID}/{number}", Method.POST);
request.AddBody(previousOrderStatus);
request.AddBody(newOrderStatus);
但是在请求参数中调用AddBody方法后,只能看到空但没有值。在调用MVC操作方法时,会发生错误:
参数字典包含'OrdersResourceEndpoint'中方法'RestResponse PostOrderStatus(Int32,System.String,OrderStatusFlags,OrderStatusFlags)'的非可空类型'OrderStatusFlags'的参数'previousStatus'的空条目。可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数
Enum看起来像这样:
public enum OrderStatusFlags : long
{
Pending,
Confirmed,
...
}
是否有人出现类似情况?
答案 0 :(得分:4)
这里有几个问题。首先,您只能拨打AddBody()
一次或最后一次通话优先。 AddBody()
也仅用于发送XML作为请求正文。您需要向该URL发送所需的XML架构是什么?你能发布一些你想要生成的样本XML吗?
我认为您更有可能希望使用AddParameter()
添加一些POST参数,因为这比XML请求体更常见。