使用SOAP方法调用Web服务时如何保留空格

时间:2012-08-07 11:20:44

标签: c# soap whitespace

我有一个由C#编写的Web服务,假设它是http://www.mysvr.com/answer/sms.asmx。这个服务有一个名为“Hello”的操作,一个名为“cnt1”的变量,我将值传递给这个变量。

如果我使用XML来阅读它,例如:

XmlDocument xdoc = new XmlDocument();

xdoc.Load("http://www.mysvr.com/answer/sms.asmx/Hello?cnt1=abc");

return xdoc.ChildNodes[1].InnerXml;

我将获得字符串“Hello_ _ _everybody”。 “Hello”和“everybody”之间有5个空格。我想保留这个空白。

但是当我使用SOAP来阅读它时,比如:

[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Hello",RequestNamespace="http://tempuri.org/",ResponseNamespace="http://tempuri.org/",Use=System.Web.Services.Description.SoapBindingUse.Literal,ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public string Hello(string cnt1)
{
     object[] results = this.Invoke("Hello", new object[] {cnt});
     return ((string)(results[0]));            
}

我会收到字符串“Hello everybody”。 “Hello”和“everybody”之间只有一个空格。

问题:我想使用SOAP来调用Web服务,我想在“Hello”和“everybody”之间保留5个空格。

任何人都可以帮我解决这个问题吗?我是否必须重新编写Web服务代码,或者向SOAP添加参数以启用读取5个空格?

非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试包括"大家好"

"<![CDATA["    "]]>"
字符串中的字符串。像:

<root>
    <welcome><![CDATA[Hello     everybody]]></welcome>
</root>