`
IT民工%
  • 浏览: 46245 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

c语言通过http请求javaee项目

    博客分类:
  • java
 
阅读更多

问题一

c通过http调用java提供的方法,传送xml。遇到一个奇怪的问题。肉眼看到传输过来的xml是没有问题的。

传过来的xml,如下:

<?xml version="1.0" encoding="UTF-8"?><SmsReq>        <Tel_No>13800009999</Tel_No>        <Login_Tm>2013-03-21 12:00:00</Login_Tm>    </SmsReq>

这段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<String> strs = new ArrayList<String>();
        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");

分享到:
评论

相关推荐

    JavaEE在线考试系统

    Servlet通常用于处理HTTP请求,管理会话状态等。 3. EJB:提供了一种面向对象的方式来实现分布式组件,包括Session Beans(处理业务逻辑)和Entity Beans(持久化数据)。 4. JDBC:用于与数据库通信的API,可以执行...

    JAVAEE商城项目实战课程(SSM框架+solr+thymeleaf实现,毕业设计项目也可用)

    通过这个课程,你不仅能够掌握JAVAEE开发的基本技能,还能深入了解SSM框架的协同工作,以及如何利用Solr和Thymeleaf提升项目的搜索功能和前端表现。此外,它还将为你提供宝贵的项目经验,助你在未来的职业生涯中更好...

    21天学会java-javaee-c++

    对于JavaEE,你需要掌握Web开发的基本框架,了解如何使用Servlet和JSP来处理HTTP请求,以及如何通过EJB实现业务逻辑。至于C++,理解内存管理和指针操作至关重要,同时学习STL(Standard Template Library)库能提高...

    0-1-knapsack-problem-master (45).zip

    【标签】"c" 指出项目中可能包含了C语言的元素,尽管主要描述的是JavaEE项目。这可能是由于某些特定的性能关键部分或者原生库的使用,用C语言编写可以提高效率。 【压缩包子文件的文件名称列表】"0-1-knapsack-...

    JAVAEE理念之高速公路路政管控信息体系构设与实现.docx

    【JAVAEE理念之高速公路路政管控信息体系构设与实现】 在当前的信息化时代,高速公路路政管控信息体系的构建显得尤为重要。JAVAEE作为一种广泛应用于企业级应用开发的技术框架,其理念可以有效地应用于高速公路管理...

    问卷调查系统

    【问卷调查系统】是一个基于软件工程方法论开发的项目,主要使用了JAVA和C语言进行编程。这个系统设计的目标是提供一个便捷、高效的方式来进行各种类型的问卷调查,它可能包括了用户界面、数据处理和存储等功能。从...

    javaee jdbc

    - 在大型项目中,通过封装通用的JDBC操作来实现代码复用。 - 示例: 创建通用的DAO (Data Access Object) 类来处理常见的数据库操作。 ##### 4.2 异常处理 - JDBC操作可能抛出多种异常,需要合理处理。 - 示例: 使用...

    Fastdfs分布式文件系统

    在电商项目中,商品图片、用户头像等大量小文件的存储和访问是常见的需求,Fastdfs通过将文件分散存储在不同的服务器上,实现文件的分布式管理,提高系统的稳定性和可扩展性。 Fastdfs的工作原理主要包括以下部分:...

    fastdfs_client(就是你要找的)

    "入云龙黑马19期javaee淘淘商城FastDFS上传图片fastdfs_client"这一主题,旨在介绍如何在淘淘商城这样的电商项目中,利用FastDFS的客户端组件`fastdfs_client`进行文件上传操作。 FastDFS是基于C语言开发的分布式...

    webservice学习笔记

    - **方法调用**:通过`sayHello`方法发送请求并接收响应。 ##### 3. 构建脚本 `build.xml` `build.xml`文件用于自动化构建与部署过程,包含了多个目标(target),例如初始化环境、编译服务端代码、部署服务、编译...

    Jquery解析json

    前端使用jQuery可以通过AJAX异步请求后端API,获取JSON数据,并对其进行解析和展示。 例如,可以使用`$.ajax()`方法发起请求: ```javascript $.ajax({ url: "path/to/your/api", type: "GET", dataType: "json...

    java android

    通过以上学习路线图,可以从零开始系统地学习Java及Android开发所需的各种技能。每个阶段都有相应的教程推荐,帮助初学者更好地理解并掌握相关知识点。此外,对于想要从事Java EE或Android开发的职业人士来说,还...

Global site tag (gtag.js) - Google Analytics