php调用java传递xml字符串乱码的解决办法:首先使用CURL在命令行中完成请求;然后将调用接口时的【Content-Type:application/json】改成【application/xml】即可。

php调用java传递xml字符串乱码的解决办法:

这两个工作需要,给一个php同事提供java接口,参数内容:

1348831860

1234567890123456

request header:

method:POST。

由于客观原因,不能直接调用,所以自测接口时用的postman,接口调用一切正常。BUT,上线以后,测试时一直报

org.dom4j.DocumentException: Error on line 1 of document : 前言中不允许有内容。 Nested exception: 前言中不允许有内容。

但是日志输出:

标签中多了转义字符,使用正则替换:xml.replaceAll("

但是上面的异常信息还在。。。。。。

网上几乎一致的解决方案:用编辑器打开另存为,修改编码格式。程序怎么会这么搞!!!

在同事的协助下,使用CURL 在命令行中请求:curl -X POST

http://localhost:21010/wx_reply/reply2User

-H 'cache-control: no-cache'

-H 'content-type: application/xml'

-H 'postman-token: 08ae772c-7891-aaa2-01ef-30dccf5ffac0'

-d '

1348831860

1234567890123456

'

发现参数实际是:%3Cxml%3E%0A%3CToUserName%3E%3C%21%5BCDATA%5Bwxcc878e3a91463bb5%5D%5D%3E%3C%2FToUserName%3E%0A%3CFromUserName%3E%3C%21%5BCDATA%5Bon2BF1J3NBTUCFChovU-CNOs1MxU%5D%5D%3E%3C%2FFromUserName%3E%0A%3CCreateTime%3E1348831860%3C%2FCreateTime%3E%0A%3CMsgType%3E%3C%21%5BCDATA%5Btext%5D%5D%3E%3C%2FMsgType%3E%0A%3CContent%3E%3C%21%5BCDATA%5Bthis+is+a+test%5D%5D%3E%3C%2FContent%3E%0A%3CMsgId%3E1234567890123456%3C%2FMsgId%3E%0A%3CBrandId%3E%3C%21%5BCDATA%5B5%5D%5D%3E%3C%2FBrandId%3E%0A%3CHotelId%3E%3C%21%5BCDATA%5B5%5D%5D%3E%3C%2FHotelId%3E%0A%3C%2Fxml%3E=

也就是说:

spring对request中body的内容进行了encode。使用URLDecode.decode(xml后得到了正常的内容,但发现参数后面多了一个=(看上面的参数)。

最终检查发现:是php同事调用接口时的Content-Type:application/json,改成application/xml后,问题解决了。想了解更多编程学习,敬请关注php培训栏目!

Java传xml时字符串乱码_php调用java传递xml字符串乱码怎么办相关推荐

  1. mybatis中传集合时 报异常 invalid comparison: java.util.Arrays$ArrayList and java.lang.String

    mybatis中传集合时 报异常 invalid comparison: java.util.Arrays$ArrayList and java.lang.String 参考文章: (1)mybati ...

  2. lajp mysql安装_Php调用java说明

    Php调用java说明 (lajp实现) LAJP名称含义 LAJP名称来源于著名的LAMP(Linux,Apache,Mysql,Php),LAMP是轻量级的开发Web程序的环境,在Internet ...

  3. java 调用 dll 乱码_java调用c++ dll出现中文乱码

    最近的开发用到了使用java调用本机动态连接库的功能,将文件路径通过java调用C++代码对文件进行操作.在调用中如果路径中包含有中文字符就会出现问题,程序运行就会中止.下面用一个小例子,来说明记录下 ...

  4. java dll 乱码_java调用c++ dll出现中文乱码 | 学步园

    最近的开发用到了使用java调用本机动态连接库的功能,将文件路径通过java调用C++代码对文件进行操作.在调用中如果路径中包含有中文字符就会出现问题,程序运行就会中止.下面用一个小例子,来说明记录下 ...

  5. Vue路由传参时,刷新页面,参数将当成字符串来处理?

    在练习编程路由导航传参时,发现将 num:10传到积分页面通过computed属性加1变成11,但刷新了本页后并未按照预想的那样, 变为11,而是字符串拼接成了101, 然后,typeof查看传过去的 ...

  6. c#调用java开发的webservice_用C#.NET调用Java开发的WebService传递int,double问题

    用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到string类型的属性值,却不能得到int类型.double和D ...

  7. android jni 调用java对象_Android NDK开发之Jni调用Java对象

    本地代码中使用Java对象 通过使用合适的JNI函数,你可以创建Java对象,get.set 静态(static)和 实例(instance)的域,调用静态(static)和实例(instance)函 ...

  8. CORBA 简单了解和JAVA与C++互操以及C++调用Java web service

    CORBA了解 CORBA(Common Object Request Broker Architecture, 公共对象请求代理体系结构)是由OMG(对象管理组织,Object Management ...

  9. android jni c调用java,Android学习JNI,使用C调用JAVA语言

    本节学习使用C语言调用JAVA语言.在生活中比如我们某些底层的硬件必须使用C语言去编写,当C语言返回的某些数值显示在界面上时,就比如使用JNI.这样可以将C返回的值显示在界面上. 本节模拟传感器返回的 ...

最新文章

  1. Linux课程第十三天学习笔记
  2. erl0007 - erlang 远程节点连接的两种方式
  3. 测试架构师的目标和价值
  4. ITK:关闭二进制图像
  5. JPA中的@MappedSuperclass
  6. 物理学家张首晟:如果世界末日来临,我会带这几句话上诺亚方舟|研习社演讲实录...
  7. Unity WebGL打包微端时遇到的indexedDB加载问题
  8. CenterOS yum 使用
  9. nginx 命令_MAC 操作nginx命令
  10. 统计通话次数和时间的软件_通话时间统计官方版
  11. java手机号正则校验工具类
  12. 信号处理第一式——离散信号序列的基本运算及MATLAB实现
  13. 解决word中公式插入后行间距变大,和文字不统一的问题
  14. 写好作文批语,激发学生的写作兴趣
  15. DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios
  16. Python 生成、识别社会统一信用代码
  17. 多径效应及其消除方法
  18. C++课程设计(校车订票管理系统)
  19. sklearn线性回归,支持向量机SVR回归,随机森林回归,神经网络回归参数解释及示例
  20. 单线激光雷达SLAM(二)特征识别——断点、角点

热门文章

  1. visual studio快捷键 Qt creator快捷键
  2. 线程阻塞的概念 (Java 中的睡眠状态sleep 等待状态wait 礼让状态yield 自闭状态join suspend() 和 resume() )
  3. python sklearn.decomposition.PCA 主成分分析, 原理详解
  4. There is no getter for property named ‘col‘ in ‘class String‘,不是说一个参数不需要@Param注解吗?#{}和${}的区别
  5. mysql连接数thread_MySQL数据库负载很高连接数很多怎么处理
  6. 除了 MySQL 数据库,你还要了解的一些数据库
  7. 在页面中隐藏数据库某信息并显示该信息对应的字典编码名称(后台ssh框架,前台extjs)
  8. python内置函数用来打开或创建文件_2020年《python程序设计》基础知识及程序设计598题XS[含参考答案]...
  9. php foreach 循环 判断index 小于多少_PHP设计模式之迭代器模式 - 硬核项目经理
  10. PE转换分区表格式为GPT