c java http通讯,c语言经过http请求javaee项目
问题一
c通过http调用java提供的方法,传送xml。遇到一个奇怪的问题。肉眼看到传输过来的xml是没有问题的。
传过来的xml,如下:
<?xml version="1.0" encoding="UTF-8"?> 13800009999 2013-03-21 12:00:00
这段xml我放到jmeter里面请求我的java服务和我自己用java程序模拟http请求直接将这段字符串发过来,也都是可以解析的。
唯独通过c过来后。DocumentHelper.parseText(rsXml); 报如下错误。
org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in trailing section. Nested exception: Content is not allowed in trailing section.
最后怀疑xml中有什么不显示的非法字符导致无法解析。随加replaceAll("[^\\x20-\\x7e]", "");解析正常。
具体哪些字符是非法的,刚才我想着通过[\\x20-\\x7e]这个正则取出xml里面到底是哪些字符非法。写了如下方法:
private static void getStrings(String str) {
Pattern p = Pattern.compile("[^\\x20-\\x7e]");
Matcher m = p.matcher(str);
ArrayList strs = new ArrayList();
while (m.find()) {
strs.add(m.group(0));
}
for (String s : strs){
System.out.println(s+"==");
}
}
输出的结果像一个空格。但是是不显示的。推测应该是从c传到java的过程中多了某个不可显示的字符在此也不必深究了,以后注意。
问题二
由于java项目是springMvc。所以控制层都交给spring管理。但是c过来的http。在spring管理的控制层中无法获取request.getInputStream()。最后无奈改成servlet。二者方法里面的代码完全一致。servlet正常获取。
原因至今不明。感谢这位仁兄给出的思路。解决了问题。
http://www.bitscn.com/pdb/java/200806/143983.html
客户端需要加如下代码:
java:httpURLConnection.setRequestProperty("content-type", "text/html");
c:ghttp_set_header(request, http_hdr_Content_Type, "text/html;charset=UTF-8");
c java http通讯,c语言经过http请求javaee项目相关推荐
- C语言实现DNS请求器
C语言实现DNS请求器 文章目录 C语言实现DNS请求器 项目介绍 前置知识 DNS介绍 DNS的分层 域名解析 递归查询和迭代查询 DNS协议报文格式 头部(Header) Queries(查询问题 ...
- c语言 python-C语言、Java语言和python语言的区别在哪里
原标题:C语言.Java语言和python语言的区别在哪里 我们经常听到C语言.Java语言和python语言,那么这三者的区别在哪里呢?随着科技的进步以及新技术的推进,编程语言的种类也是越来越多,随 ...
- c语言和java和汇编语言_C语言和汇编语言的区别是什么?
展开全部 区别如下: (1)两者编译组成不同.汇编语言是将由0.1组成的机器语言用具有简单语义的32313133353236313431303231363533e4b893e5b19e31333366 ...
- python和c语言的区别-C语言、Java语言和python语言的区别在哪里
原标题:C语言.Java语言和python语言的区别在哪里 我们经常听到C语言.Java语言和python语言,那么这三者的区别在哪里呢?随着科技的进步以及新技术的推进,编程语言的种类也是越来越多,随 ...
- [Java面试九]脚本语言知识总结.
[Java面试九]脚本语言知识总结. 核心内容概述 1.JavaScript加强,涉及到ECMAScript语法.BOM对象.DOM对象以及事件. 2.Ajax传统编程. 3.jQuery框架,九种选 ...
- 易语言java类_易语言面对对象编程
易语言面对对象编程---类的创建与使用 面对对象编程,可以说是当前最流行的编程方式,当前流行的面对对象的编程语言很多,如:C++.JAVA等等.易语言3.8版推出后,同样紧跟编程语言发展的方向,也开始 ...
- Int类型数据的序列化以及反序列化(与Java服务器通讯预热)
游戏前端,避免不了的跟服务器通讯,其实游戏的大部分逻辑都在服务端,并不在客户端,所以需要跟服务端通讯"协商"一些逻辑,既然通讯,就少不了的传输,传输之前又要序列化,这篇博客主要讲一 ...
- 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...
- 各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言)
各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言) 总结 a.一个语言或者一个东西能火是和这种语言进入某一子行业的契机有关.也就是说这个语言有没有解决社会急需的问题. ...
最新文章
- IPv6 与 IPv4现状
- getLocationInWindow getLocationOnScreen getLeft , getTop, getBottom,getRight
- 规模化敏捷中的“三要”和“三不要”
- ASP.NET程序中常用代码汇总(一)
- python range函数与numpy arange函数,xrange与range的区别
- 10月碎碎念-谈谈『自我放弃』
- java基础集合简介Map(三)下
- centos65编译安装lamp和lnmp
- GAN诞生记:最火的AI模型,来自一群博士的酒后争吵
- php表格无限扩展,php 无限级缓存的类的扩展
- md5加密、Des加密对称可逆加密、RSA非对称可逆加密、https单边验证、银行U盾双边认证...
- Android抓包工具Fiddler的使用教程
- 谷歌浏览器html播放音乐,谷歌浏览器听歌插件:用Listen1听歌超方便!‖干货大放送...
- RS485端子接线方法(带图)
- 微信网页授权流程 时序图
- webrtc整体框架
- android wifi 共享网络,手机与电脑之间共享网络的设置方法(Android无线网络共享设置指南)...
- PHP 富文本内容中图片路径追加域名
- 【P04】运放全差分放大器实现单端与平衡的相互转换
- 阿里云ECS重置实例密码
热门文章
- Android开发学习总结(三)——appcompat_v7项目说明
- [MySQL FAQ]系列 -- 新年新思想:MySQL也能并发导入数据
- Python通过正则表达式去除(过滤)HTML标签,提取文字
- 一个销售精英拜访客户的6大绝招,胜过10次培训,实用!
- 数论基础之组合数计数问题
- vue 项目常见功能(搜索 时间戳转换 过滤器)
- SpringCloud的服务注册中心(三) - 进一步了解 Eureka
- Linux Unix shell 编程指南学习笔记(第五部分)
- 看unix高级编程时遇到apue.h找不到的问题
- 网上图书商城项目学习笔记-028编辑一级分类