【问题标题】:Content sent to API is truncated发送到 API 的内容被截断
【发布时间】:2015-01-11 21:16:22
【问题描述】:

我正在使用 PostMan 将 (Xml) 内容重新发送到 webAPI 方法。不幸的是,在字符串中指定> 时,Xml 内容被截断(xml 包含一个已对 xml 进行 url 编码的属性)

我无法更改 xml 的格式,因为它已在应用程序中使用,因为我只是从 sql 中的表中提取值,并将其重新发布到 api 以进行测试。并且我需要能够按原样提取数据,并通过 PostMan 将其重新发布到 api 中(我可能需要对不同的数据重复执行此操作)。

API 签名是:

public HttpResponseMessage Put([FromBody]string userDataSetString, [FromUri(Name = "V")]string apiVersion)

这就是我在 PostMan 中拥有的数据:

当我对 API 执行此操作时,userDataSetString 参数有:

<Test Value="

我需要在标题中添加一些内容以使其能够应对这种情况吗?

编辑作为替代方案,我还将接受任何让我将 xml 存储在文件中的答案,并将其附加到邮递员中以进行发送。

【问题讨论】:

    标签: xml asp.net-web-api put postman


    【解决方案1】:

    所以我发现问题是由于代码中存在&amp;

    在将我的数据插入 Postman RAW 文本窗口之前,我需要用 %26 对 & 进行全局替换

    之前

    =<Test Value="&gt;Data"></Test>
    

    之后

    =<Test Value="%26gt;Data"></Test>
    

    【讨论】:

      【解决方案2】:

      你可以使用HttpRequestMessage:

      public HttpResponseMessage Put(HttpRequestMessage request, [FromUri(Name = "V")]string apiVersion)
      {
          var xml = request.Content.ReadAsStringAsync().Result;
          ...
          return new HttpResponseMessage();
      }
      

      并使用下一个标题发布:

      content-type: application/x-www-form-urlencoded
      

      和下一个正文(开头没有'='字符)

      <Test Value="&gt;Data"></Test>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-31
        • 2014-05-22
        • 1970-01-01
        相关资源
        最近更新 更多