带小于符号的SOAP消息导致无效的XML错误

时间:2011-07-05 01:22:07

标签: iphone

我正在开发一个需要使用第三方SOAP Web服务的iPhone应用程序(我知道,SOAP不是首选,它正是我所坚持的)。基本上用户输入的数据被发送到Web服务,我发现某些字符不会发送并导致下面的错误消息。到目前为止导致这个问题的一个字符是<。没有角色,它可以正常工作。我希望能够发送这样的角色。我发送带有UTF8StringEncoding的字符串。也许有些东西我可以修改以允许这样的角色?

[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>

1 个答案:

答案 0 :(得分:0)

似乎我已经弄明白了!因此,要发送包含<的用户输入,我只需将其发送到:

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

使用CDATA标记允许字符串作为soap消息传递。