微信公众平台 Premature end of file

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

public String processRequest(HttpServletRequest request) {

        String respMessage = null;

        try {

            System.err.println(inputStream2String(request.getInputStream()).replaceAll("\n\r","").replaceAll("\n",""));

            // 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("\n\r","").replaceAll("\n","")); ”这句测试代码删掉,然后就好了。。。。

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

你可能感兴趣的:(微信公众平台)