Python 2.6上的HTTP实例没有属性getresponse Error

Python 2.6上的HTTP实例没有属性getresponse Error,python,http,Python,Http,我试图使用python进行一些jsonrpc调用。但是,由于api调用需要cookie,因此我创建了自己的传输类,该类将由jsonrpclib使用。这在最新的2.7 python中完全可以正常工作。然而,当我尝试在Python2.6.6上运行它时,它会抱怨HTTP实例没有getresponse属性 代码 错误发生在resp=h.getresponse的行 有什么想法吗?? 顺便问一下,python是一种在不同版本上运行时很容易弄乱代码的语言吗?这种有线行为在我身上出现过多次。什么是h型?我没有看

我试图使用python进行一些jsonrpc调用。但是,由于api调用需要cookie,因此我创建了自己的传输类,该类将由jsonrpclib使用。这在最新的2.7 python中完全可以正常工作。然而,当我尝试在Python2.6.6上运行它时,它会抱怨HTTP实例没有getresponse属性

代码

错误发生在resp=h.getresponse的行

有什么想法吗??
顺便问一下,python是一种在不同版本上运行时很容易弄乱代码的语言吗?这种有线行为在我身上出现过多次。

什么是h型?我没有看到self.make\u连接的实现。您确定Python2.6中存在该方法吗?该方法可能是后来添加的—Python2.6非常旧。它应该在XMLTransport中使用make_连接方法,并且两个Python版本使用相同版本的xmlrpclib模块。所以我想他们应该有相同的实现?但是我在Python2.7中检查了h的类型,它似乎是一个httplib.HTTPConnection,但在2.6中它是一个httplib.HTTP@user3354832@BurhanKhalid问题的根源是什么?xmlrpclib在这两台计算机中有相同的版本,但为什么它们的调用堆栈不同呢?我如何解决这个问题?对于运行Python2.6的计算机,我不允许对其进行任何更新。
class TransportMixIn(object):
    """ Just extends the XMLRPC transport where necessary. """
    user_agent = jsonrpclib.config.user_agent
    # for Python 2.7 support
    _connection = None

    def send_content(self, connection, request_body):
        connection.putheader("Content-Type", "application/json-rpc")
        connection.putheader("Content-Length", str(len(request_body)))

        if cookie != None :
            connection.putheader("Cookie",cookie)

        connection.endheaders()
        if request_body:
            connection.send(request_body)


    def getparser(self):
        target = JSONTarget()
        return JSONParser(target), target

    def request(self, host, handler, request_body, verbose=False):
        # issue XML-RPC request
        self.verbose = verbose


        try:
            h=self.make_connection(host)
            if verbose:
                h.set_debuglevel(1)

            self.send_request(h,handler,request_body)
            self.send_host(h,host)
            self.send_user_agent(h)
            self.send_content(h,request_body)
            **resp = h.getresponse()**
            if resp.status == 200:
                self.verbose = verbose
                global cookie 
                cookie = resp.getheader('set-cookie')
                return self.parse_response(resp)

        except xmlrpclib.Fault:
            raise
        except Exception:
            #All unexpected errors leave connection in
            # a strange state, so we clear it.
            self.close()
            raise

        #We got an error response.
        #Discard any response data and raise exception
        if resp.getheader("content-length", ""):
            resp.read()
        raise xmlrpclib.ProtocolError(
            host + handler,
            resp.status, resp.reason,
            dict(resp.getheaders())
            )



class Transport(TransportMixIn, XMLTransport):
    pass

class SafeTransport(TransportMixIn, XMLSafeTransport):
    pass