zoukankan      html  css  js  c++  java
  • 微信公众平台 Premature end of file

    今天在研究微信公众平台 自动接收发送消息的时候,在如下代码:

    public String processRequest(HttpServletRequest request) {
            String respMessage = null;
            try {
                System.err.println(inputStream2String(request.getInputStream()).replaceAll("
    
    ","").replaceAll("
    ",""));
                // xml请求解析
                Map<String, String> requestMap = MessageUtil.parseXml(request);
                // 发送方帐号(open_id)
                String fromUserName = requestMap.get("FromUserName");
                // 公众帐号
                String toUserName = requestMap.get("ToUserName");
                // 消息类型
                String msgType = requestMap.get("MsgType");
                TextMessage textMessage = new TextMessage();
                textMessage.setToUserName(fromUserName);
                textMessage.setFromUserName(toUserName);
                textMessage.setCreateTime(new Date().getTime());
                textMessage.setMsgType("text");
                textMessage.setFuncFlag(0);
                // 文本消息
                
                System.err.println("msgType:"+msgType);
                System.err.println("textMessage.getMsgType():"+textMessage.getMsgType());
                
                if (msgType.equals(textMessage.getMsgType())) {
                    System.err.println("2");
                    // 接收用户发送的文本消息内容
                    String content = requestMap.get("Content");
                    if ("1".equals(content)) {
                        textMessage.setContent("1是很好的");
                        // 将文本消息对象转换成xml字符串
                        respMessage = MessageUtil.textMessageToXml(textMessage);
                    } else if ("2".equals(content)) {
                        textMessage.setContent("我不是2货");
                        // 将文本消息对象转换成xml字符串
                        respMessage = MessageUtil.textMessageToXml(textMessage);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.err.println("3");
            return respMessage;
        }

    测试文本如下:

    String s = "<xml><ToUserName><![CDATA[gh_41fbf927ea91]]></ToUserName>"
                    + "<FromUserName><![CDATA[oehO4twMrDrZG3sZ1aeevO_f1Rb4]]></FromUserName>"
                    + "<CreateTime>1400915169</CreateTime>"
                    + "<MsgType><![CDATA[text]]></MsgType>"
                    + "<Content><![CDATA[1]]></Content>"
                    + "<MsgId>6016884835525482273</MsgId>" + "</xml>";

    本地调试什么的,都挺好的,就是一发布到服务器就报了Premature end of file 的错误,后来上网上找了,用了各种办法,最后都不行,其中也看到了http://blog.sina.com.cn/s/blog_409994cb0100oj2t.html的帖子说的,仔细读取了博客,最后把“System.err.println(inputStream2String(request.getInputStream()).replaceAll(" ","").replaceAll(" ","")); ”这句测试代码删掉,然后就好了。。。。

    我真想说,CNMLGB的,就这一个注释,浪费了我将近3个小时的时间。。。。菜鸟伤不起啊

  • 相关阅读:
    作业01(2020年10月10号)
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02
    第一次学c语言作业
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
  • 原文地址:https://www.cnblogs.com/sunhan/p/3750162.html
Copyright © 2011-2022 走看看