2014-11-14 3 views
0

A есть веб-метод с входным параметром типа строки. Но этот параметр фактически не является строкой, а xml. Пример ввода является:Передача XML в качестве входного параметра в WS

<![CDATA[<check> 
    <id>12354564</id> 
    <idMeaning>msisdn</idMeaning> 
<amount>500</amount> 
</check>]]> 

Беллоу отрезала форма моего кода, где я создать вход и вызывать метод

// create xml 
var xml = new XElement("check",    
       new XElement("id", "41504823"), 
       new XElement("idMeaning", "msisdn"), 
       new XElement("amount", "500") 
       );  

// add CDATA 
var input = new XCData(xml.ToString()); 

// get client 
var client = WSWrapper.GetClient(); 

// call method 
client.DoCheck(input.ToString()); 

Но у меня есть проблемы с кодировкой. Если я проверяю запрос по сети я могу видеть, что XML был закодирован как

&lt;![CDATA[&lt;check&gt; 
&lt;id&gt;41504823&lt;/id&gt; 
&lt;idMeaning&gt;msisdn&lt;/idMeaning&gt; 
&lt;amount&gt;500&lt;/amount&gt; 
&lt;/check&gt;]]&gt 

Как я могу предотвратить эту кодировку?

ответ

1

Везде, где вы читаете его по проводу, вы не читаете его в формате XML, это текстовый формат, который «lt» означает «меньше», «<» и gt, «больше, чем», «> ,

Убедитесь, что у вас есть заявление, в верхней части:

<?xml version="1.0" encoding="UTF-8"?>