肥皂请求不断发送错误的值

时间:2016-02-16 23:18:24

标签: c# soap

我创建了一个调用服务的小型soap应用程序。应用程序读取脚本文件,拆分参数,并替换soap请求正文模板中的占位符。

(缩写为长度)

<soap:Envelope...>
  ...
  <param1>?</param>
  ...
</soap:Envelope...>

该脚本看起来像

myAction|50|...

并且该工具负责更换? 50在正确的位置。

当我想为派拉姆发送任何内容时,我的问题就出现了。

MyAction||....

我只是在做一个string.Split(),结果数组说[1] == string.Empty

替换是这样的(endtag在循环外定义,因此它通过正文进行)

 var endtag = body.IndexOf("</" + param + ">", endtag)
 var beg = body.Substring(0, endtag - 1);
 body = beg + param + body.Substring(endtag);

看着最终的身体,一切看起来都很好:

<soap:Envelope...>
  ...
  <param1></param>
  ...
</soap:Envelope...>

然而,当我的服务收到它时,字符串param1有&#34; \ n&#34;

我无法弄清楚为什么会发生这种替换。

任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:0)

你有2个选项来处理缺少SOAP参数。

  1. 要么根本不写<param1>元素
  2. 或向元素添加nil属性。

    &lt; param1 xsi:nil =“true”/&gt;

  3. 这是确保将空值传递给服务的最可靠方法。

    SOAP参数值

    <param1></param>
    

    实际上可以引用空字符串(不是空值)