FLEX AIR实践—FLEX AIR XML Encode Bug

 这几天在用AIR程序通过WebService进行数据传输时发现了以下问题:

用WebService传输‘A&B’内容到目的地,再从目的地将数据通过WebService获取到本地,结果数据变成了'A&B';
于是开始进行以下测试:
将'A&B'替换成'A&B'——>获取结果为'A&B'
测试了其他转义字符也得到了同样的结果(&均被转化成了&)

 

而同样的测试在Flex Application(非AIR工程)中进行得到的结果就是'A&B'

查了好久,最后找到了AIR BUG:
在WebService.as中有以下代码:

 

原来AIR在WebService向外传输数据前就对传输内容中的特殊字符做了转义处理,将'&'转义成了'&'
于是在传输过程中HTTP协议又对其进行了转义处理'&'就变成了'&'

官方资料:
http://bugs.adobe.com/jira/browse/SDK-18326

处理方案:
在执行WebService所调用的方法前添加以下内容:
new WebService() ws.xmlSpecialCharsFilter= function(value:Object):String { return value.toString(); }

 

通过重写xmlSpecialCharsFilter 禁止对任何字符进行转义处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值