【问题标题】:how to PUT a "WrappedRequest" request for wcf RESTful service from Fiddler如何从 Fiddler 对 wcf RESTful 服务提出“WrappedRequest”请求
【发布时间】:2013-01-15 16:16:00
【问题描述】:

我得到了以下 REST 服务,我需要从 fiddler 对其进行测试,并且我已经搜索了很多,我想出了有效负载的结构如下:

<Update xmlns="http://tempuri.org/">
    <value></value>
</Update>

"value" 可以是XElementIEnumerable&lt;XElement&gt;,没有别的。

上面的 XML 没问题(意味着它在传递空纯对象实例的情况下到达断点)但是如果我将“任何东西”放在节点内,我会得到 400 Bad Request 而不会到达任何断点。

public interface ISomeInterface
{
    [WebInvoke(Method = "PUT", UriTemplate = "/{key}", BodyStyle = WebMessageBodyStyle.WrappedRequest)]
    void Update(string key, object value);

    [WebInvoke(Method = "DELETE", UriTemplate = "/{key}")]
    void Delete(string key);        
}

public void Update(string key, object value)
{
    this.UpdateSomething(key, value, true);
}

问题是如何创建一个合适的 xml 来使用 Fiddler 将其传递给服务?

【问题讨论】:

    标签: c# wcf-rest


    【解决方案1】:

    试试BodyStyle = WebMessageBodyStyle.Bare

    【讨论】:

      【解决方案2】:

      从服务器端组件使用的模式(如果您使用任何模式)创建模板 xml 是一个好的开始。 否则,您可以编写一个简单的 xml,其中包含您在服务中提取的所有属性(手动且容易出错)

      【讨论】:

      • 正如我所提到的,我期待 XElement 或 XElement 数组,因此没有任何类型的 xml 模板。此外,我没有从服务帮助页面获得任何帮助,因为由于 WrappedRequest 属性,此时无法推断架构。我基本上需要以 XElement(s) 的形式传递一个平面 xml 或键值对。
      猜你喜欢
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多