我正在使用RestSharp在 ASP .NET MVC 2 项目中。尝试创建 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”的空条目。可选参数必须是引用类型、可为 null 的类型,或者声明为可选参数。 参数名称:参数
枚举看起来像这样:
public enum OrderStatusFlags : long
{
Pending,
Confirmed,
...
}
有人遇到过类似的情况吗?
最佳答案
这里有几个问题。首先,您只能调用 AddBody()
一次,否则最后一次调用将优先。 AddBody()
也仅用于发送 XML 作为请求正文。您需要发送到该 URL 的必需 XML 架构是什么?您可以发布一些您尝试生成的示例 XML 吗?
我认为您更有可能实际上想要使用 AddParameter()
来添加一些 POST 参数,因为这比 XML 请求正文更为常见。
关于restsharp - 无法使用枚举将正文添加到 RestSharp RestRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3865182/