2012-08-07 46 views
0

我有一个由C#编写的Web服务,假定它是http://www.mysvr.com/answer/sms.asmx。该服务有一个名为“Hello”的操作,一个名为“cnt1”的变量,我将把值传递给这个变量。如何在使用SOAP方法调用Web服务时保留空白

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

XmlDocument xdoc = new XmlDocument(); 

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

return xdoc.ChildNodes[1].InnerXml; 

我会得到字符串 “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]));    
} 

我会得到字符串 “大家好”。 “你好”和“每个人”之间只有一个空格。

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

任何人都可以帮我解决这个问题吗?我可能需要重新编写Web服务,还是向SOAP添加参数以启用5个空白空间?

非常感谢。

回答

1

尝试在

"<![CDATA[" "]]>"
字符串中包含“Hello everybody”字符串。像:

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

非常感谢。 – user1581705 2015-09-09 07:18:20