微信公眾平台 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個小時的時間。。。。菜鳥傷不起啊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM