restsharp - 无法使用枚举将正文添加到 RestSharp RestRequest

标签 restsharp

我正在使用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/

相关文章:

c# - SSIS Web API 连接

c# - 如何使用 RestSharp 进行谷歌身份验证?

c# - 如何将值返回到异步方法中?

c# - 带 HTTP 2.0 的 RestSharp

c# - RestSharp JSON 参数发布

json - Play 框架上的单个 POST 请求中的多个文件上传和 json 对象

oauth - 如何在OAuth中使用RestSharp?

c# - 为什么RestSharp不支持Windows Phone上的同步请求?

c# - RESTSharp 在反序列化包括字节顺序标记的 XML 时遇到问题?

c# - 指定的值包含无效的 HTTP header 字符