发送给API的内容会被截断

时间:2014-11-26 13:55:19

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

我正在使用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中的数据:

Postman Settings

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

<Test Value="

我是否需要在标题中添加一些内容以使其能够应对此问题?

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

2 个答案:

答案 0 :(得分:1)

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

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

<强>之前

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

<强>后

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

答案 1 :(得分:0)

您可以使用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

和下一个身体(开头没有&#39; =&#39;字符)

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