zoukankan      html  css  js  c++  java
  • 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();
         }

  • 相关阅读:
    【shell脚本】系统硬件信息数据库收集(普通版和导入Excel版)auto_system_collect.sh
    【linux命令】sz、rz命令安装及使用
    【shell脚本】全备份和增量备份Linux系统脚本auto_bak_system.sh
    【shell脚本】截取恶意端口ip,禁止远程登录22端口auto_deny_ip.sh
    【shell脚本】自动生成网卡文件主要内容auto_network_scripts.sh
    java 多个数 组合成不同的组
    linux jdk配置
    ubuntu sh脚本激活conda 虚拟环境
    liunx mysql数据库目录迁移
    liunx 定时任务执行java程序配置流程
  • 原文地址:https://www.cnblogs.com/yxwkf/p/3856354.html
Copyright © 2011-2022 走看看