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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c++常用头文件和函数_C加加头文件

    c++常用头文件和函数_C加加头文件文章目录常用头文件下的函数介绍:cstring/string.h1.strlen()2.strcmp()3.strcpy()4.strcat()常用头文件下的函数介绍:cstring/string.hC语言提供了很多实用的数学函数,如果要使用,需要在程序开头添加头文件cstring或者string.h。//二者选一#include<cstring>#include<string.h>1.strlen()strlen(str)用于得到字符数组中第一个\0前

    2025年8月29日
    7
  • diff命令安装_diffmerge

    diff命令安装_diffmerge概述:在用git进行源代码版本维护的时候,常常会进行各代码版本之前区别的查看,例如在每次提交改动前进行gitdiff可以看到源文件代码相对相应版本或是远程仓库的改动情况,如果有冲突还需要进行me

    2022年8月3日
    4
  • 360天擎退出密码不知道_奇安信天擎卸载时要输密码

    360天擎退出密码不知道_奇安信天擎卸载时要输密码粉碎企业版安装文件夹下所有ent开头的文件夹和文件,然后使用控制面板中的删除程序即可删除。

    2022年9月24日
    7
  • python里面的缩进是什么意思_Python缩进规则(一看即懂)[通俗易懂]

    python里面的缩进是什么意思_Python缩进规则(一看即懂)[通俗易懂]通常来说,一条Python语句应在一行内写完,但如果语句很长,可以使用反斜杠\来实现多行语句,例如:s=”我正在写\一本关于Python的书”print(\s)需要注意的是,在成对的大括号{}、中括号[]或小括号()中的多行语句,不需要使用反斜杠\,例如:total=[‘item_one’,’item_two’,’item_three’,’item_four’,’item…

    2022年10月13日
    5
  • openssl安装与使用

    文章目录1、OpenSSL简介2、OpenSSL安装3、加密技术介绍4、openssl命令4.1摘要命令4.2、对称加密命令4.3非对称加密命令4.3.1生成私钥4.3.2提取公钥4.3.3利用公私钥加密、解密数据4.3.4数字签名4.3.5数字证书1、OpenSSL简介OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux、Windows、MacOS等多种平台。  OpenSSL最早的版本在1995年发布,1998年后开始由OpenS

    2022年4月6日
    59
  • datagri激活码[最新免费获取]

    (datagri激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlb…

    2022年3月27日
    77

发表回复

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

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