c语言通过http请求javaee项目

问题一

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");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在IDEA中创建JavaEE项目,可以按照以下步骤进行操作: 1. 打开IDEA,并选择创建新项目选项。 2. 在项目类型选择页面,选择Java Enterprise,并点击下一步。 3. 在项目设置页面,输入项目名称和项目路径,并点击下一步。 4. 在服务器设置页面,点击"+"按钮添加Tomcat服务器。 5. 在弹出窗口中,选择已经下载好的Tomcat版本,并点击下一步。 6. 配置Tomcat服务器的安装路径和JDK路径,并点击完成。 7. 在项目设置页面,确认项目结构和模块设置,点击下一步。 8. 在额外库页面,可以添加项目所需的额外库文件,点击下一步。 9. 在项目模板页面,可以选择使用模板创建项目结构,也可以选择空白项目,点击完成。 创建JavaEE项目的过程中,需要手动在WEB-INF目录下创建两个目录classes和lib,这可以在项目创建完成后进行。 以上是使用IDEA创建JavaEE项目的简要步骤,请根据具体的IDEA版本和Tomcat版本进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [使用IDEA创建JavaEE项目并配置Tomcat](https://blog.csdn.net/weixin_45802966/article/details/120150839)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [SSM框架的学习与应用JavaEE(第二天)Mybatis的深入学习](https://download.csdn.net/download/m0_53659738/88241458)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值