2011-07-05 25 views
0

我正在研究一個需要使用第三方SOAP Web服務的iPhone應用程序(我知道,SOAP不是首選,它就是我所堅持的) 。基本上用戶輸入的數據被髮送到Web服務,我發現某些字符不會發送並導致下面的錯誤消息。到目前爲止,導致這種情況的一個字符是<。沒有人物,它的工作正常。我想有能力發送這樣的字符。我發送的字符串是UTF8StringEncoding。也許我可以修改一下以允許這些角色?具有少於符號的SOAP消息會導致無效的XML錯誤

[req setHTTPBody: [soapMsg dataUsingEncoding:NSUTF8StringEncoding]]; 

錯誤:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>Sender</faultcode><faultstring>Invalid XML</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope> 

回答

0

看來我想通了這一點!

[NSString stringWithFormat:@"<![CDATA[\n%@\n]]>", myStringWithIllegalChar] 

使用CDATA標籤允許字符串通過作爲SOAP消息:因此,要發送用戶的輸入包括<,我簡單地把它。