def call(self, addr, data, namespace, soapaction = None, encoding = None, http_proxy = None, config = Config): if not isinstance(addr, SOAPAddress): addr = SOAPAddress(addr, config) cookie_cutter = ClientCookie.HTTPCookieProcessor(config.cookieJar) hh = ClientCookie.HTTPHandler() opener = ClientCookie.build_opener(cookie_cutter, hh) t = 'text/xml'; if encoding != None: t += '; charset="%s"' % encoding opener.addheaders = [("Content-Type", t), ("Cookie", "Username=foobar"), # ClientCookie should handle ("SOAPAction" , "%s" % (soapaction))] response = opener.open(addr.proto + "://" + addr.host + addr.path, data) data = response.read() # get the new namespace if namespace is None: new_ns = None else: new_ns = self.getNS(namespace, data) # return response payload return data, new_ns