我创建了一个调用服务的小型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;
我无法弄清楚为什么会发生这种替换。
任何想法都表示赞赏。
答案 0 :(得分:0)
你有2个选项来处理缺少SOAP参数。
<param1>
元素或向元素添加nil属性。
&lt; param1 xsi:nil =“true”/&gt;
这是确保将空值传递给服务的最可靠方法。
SOAP参数值
<param1></param>
实际上可以引用空字符串(不是空值)