关于微信公众平台被动回复测试请求失败的解决

Submitted byAIV.WU on周六, 06/02/2018 - 14:54
相信很多人在学习时或因为懒会直接套用开发文档的一些代码,但说实在文档给出的代码蛮坑的,对于像python这种严谨到空格键都会导致错误的语言,居然给出的代码乱排序,不知有多少人被坑。
接下来我要说的这个问题也算是复制粘贴导致的错误吧我遇到的情况是在报警群信息中描述为接收到非法信息,text是NONE,最后发现是因为receive.py文件中的一个小失误
# -*- coding: utf-8 -*-
# filename: receive.py

import xml.etree.ElementTree as ET

def parse_xml(web_data):
    if len(web_data) == 0:
        return None
    xmlData = ET.fromstring(web_data)
    msg_type = xmlData.find('MsgType').text
    if msg_type == 'text':
        return TextMsg(xmlData)
    elif msg_type == 'image':
        return ImageMsg(xmlData)

class Msg(object):
    def __init__(self, xmlData):
        self.ToUserName = xmlData.find('ToUserName').text
        self.FromUserName = xmlData.find('FromUserName').text
        self.CreateTime = xmlData.find('CreateTime').text
        self.MsgType = xmlData.find('MsgType').text
        self.MsgId = xmlData.find('MsgId').text

class TextMsg(Msg):
    def __init__(self, xmlData):
        Msg.__init__(self, xmlData)
        self.Content = xmlData.find('Content').text.encode("utf-8")class ImageMsg(Msg):
    def __init__(self, xmlData):
        Msg.__init__(self, xmlData)
        self.PicUrl = xmlData.find('PicUrl').text
        self.MediaId = xmlData.find('MediaId').tex
把红色部分换成
try:
   import xml.etree.cElementTree as ET
except ImportError:
   import xml.etree.E.ementTree as ET
因为有的服务器上没有_elementTree

   

类别

标签