webservice传递特殊字符时的解决的方法

webservice传递特殊字符时的解决的方法

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

webservice soap报文是xml格式交互的,当中针对特殊字符传递无法解析,导致数据处理失败。

解决的方法例如以下:

1、在发送报文之前,针对报文进行base64转码,转义后避免报文中含有特殊字符。

标准base64中是以%开头的,假设存储到数据库中,并进行查询sql中,会解析成通配符,这样会报错。

搜索后使用改进版base64进行转码,能够规避该问题,详细度娘一下吧。

此方法的缺点是,全部client都须要知道解码的方式,否则无法解析。

 

 

2、在xml中,使用cdata标记特殊字符,这样的方式经分析后不太好。

眼下的缺点有2,一是须要针对每一个特殊字符都转换一下,首先是本人不知道应该在什么使用加入�<![CDATA[  ]]>,是在设置属性值的时候,还是最后生成报文的时候; 

并且使用这个的话数据中不能含有[[ ]]等字符。这样推断真麻烦,假设有知道这问题怎样解决,请您不吝赐教。我也仅仅是网络学习的。

 

3、还有研究什么对象的,没太研究,请大家讨论一下是什么意思:

通过Xml Document对象得到XML字符串返回给client,不能直接把XmlDocument返回给client,由于Java中的Xml Document对象,别的语言是无法正确解释的,我们仅仅能返回XML 字符串:
public String getAllNewSpace() {
         Document document = DocumentHelper.createDocument();
         Element root=document.addElement( “root “);
…………………………
if (null != dataset) {
                 while (dataset.next()) {
                     Element user=root.addElement( “User “);
                     Element userName=user.addElement( “UserName “);
                     userName.setText(dataset.getString(1));
                     Element userId=user.addElement( “UserId “);
                     userId.setText (dataset.getString(2));
                 }
             }
         return document.asXML();
     }

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118929.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 通过QXDM锁BAND_不root怎么锁band

    通过QXDM锁BAND_不root怎么锁band1、通过QXDM锁频QXDM工具View->New->Common->NVBrowser:NV(NonVoliatile)参数就是保存在终端上的非易失参数,可以通过view中的NVBrowser来进行查看和修改。这些信息由厂家固化在终端内部,一般不允许用户修改。同时,可以通过NVBrowser对终端进行Offline(掉电重启)操作。其中06828LTEBCconfig可以配置终端支持的band信息,将该项的值读出来(默认读出来为十进制)转化为二进制,..

    2022年9月28日
    0
  • oracle 11g安装教程完整版

    oracle 11g安装教程完整版64位WIN7+oracle11g+plsql安装上部转自Oracle11gR2forWin7旗舰版(64位)的安装步骤1、下载Oracle11gR2forWindows的版本 下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 其中包括两个压

    2022年7月26日
    4
  • C++11特性_object.equals

    C++11特性_object.equalsdecltype与auto关键字一样,用于进行编译时类型推导。decltype实际上有点像auto的反函数,auto可以让你声明一个变量,而decltype则可以从一个变量或表达式中得到类型,例如:intx=3;decltype(x)y=x;有人会问,decltype的实用之处在哪里呢,假如有一个加工产品的函数模板:templatevoidproc

    2022年9月9日
    0
  • 中国雇主品牌年会_雇主品牌怎么做

    中国雇主品牌年会_雇主品牌怎么做第十三届新雇主品牌年会在北京举行

    2022年4月21日
    38
  • linux(4)Linux 文件内容查看「建议收藏」

    linux(4)Linux 文件内容查看「建议收藏」查看文件内容总览cat由第一行开始显示文件内容tac从最后一行开始显示,可以看出tac是cat的倒着写!nl显示的时候,顺道输出行号!more一页一页的显示文件内容less

    2022年7月31日
    1
  • 关于基于密度的聚类方法_凝聚聚类算法

    关于基于密度的聚类方法_凝聚聚类算法本文原作者:微信公众号“燕哥带你学算法”团队的祝烨博士,目前在墨尔本从事博士后研究。“Theobservationofandthesearchforsimilaritiesanddifferencesarethebasisofallhumanknowledge.”——ALFREDB.NOBEL“人类所有知识的基础就是观察和寻找相似与相异”——阿尔弗雷德·伯

    2022年8月31日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号