def Send(self, url, opname, obj, nsdict={}, soapaction=None, wsaction=None, <EOL>endPointReference=None, soapheaders=(), **kw):
url = url or self.url<EOL>endPointReference = endPointReference or self.endPointReference<EOL>d = {}<EOL>d.update(self.nsdict)<EOL>d.update(nsdict)<EOL>sw = SoapWriter(nsdict=d, header=True, outputclass=self.writerclass, <EOL>encodingStyle=kw.get('<STR_LIT>'),)<EOL>requesttypecode = kw.get('<STR_LIT>')<EOL>if '<STR_LIT>' in kw: <EOL><INDENT>tc = requesttypecode or TC.Any(pname=opname, aslist=False)<EOL>sw.serialize(kw['<STR_LIT>'], tc)<EOL><DEDENT>elif not requesttypecode:<EOL><INDENT>tc = getattr(obj, '<STR_LIT>', None) or TC.Any(pname=opname, aslist=False)<EOL>try:<EOL><INDENT>if type(obj) in _seqtypes:<EOL><INDENT>obj = dict([(i.typecode.pname,i) for i in obj])<EOL><DEDENT><DEDENT>except AttributeError:<EOL><INDENT>tc = TC.Any(pname=opname, aslist=True)<EOL><DEDENT>else:<EOL><INDENT>tc = TC.Any(pname=opname, aslist=False)<EOL><DEDENT>sw.serialize(obj, tc)<EOL><DEDENT>else:<EOL><INDENT>sw.serialize(obj, requesttypecode)<EOL><DEDENT>for i in soapheaders:<EOL><INDENT>sw.serialize_header(i) <EOL><DEDENT>if self.auth_style & AUTH.zsibasic:<EOL><INDENT>sw.serialize_header(_AuthHeader(self.auth_user, self.auth_pass),<EOL>_AuthHeader.typecode)<EOL><DEDENT>if self.wsAddressURI is not None:<EOL><INDENT>if self.soapaction and wsaction.strip('<STR_LIT>') != self.soapaction:<EOL><INDENT>raise WSActionException('<STR_LIT>'%(self.soapaction,wsaction))<EOL><DEDENT>self.address = Address(url, self.wsAddressURI)<EOL>self.address.setRequest(endPointReference, wsaction)<EOL>self.address.serialize(sw)<EOL><DEDENT>if self.sig_handler is not None:<EOL><INDENT>self.sig_handler.sign(sw)<EOL><DEDENT>scheme,netloc,path,nil,nil,nil = urllib.parse.urlparse(url)<EOL>transport = self.transport<EOL>if transport is None and url is not None:<EOL><INDENT>if scheme == '<STR_LIT>':<EOL><INDENT>transport = self.defaultHttpsTransport<EOL><DEDENT>elif scheme == '<STR_LIT:http>':<EOL><INDENT>transport = self.defaultHttpTransport<EOL><DEDENT>else:<EOL><INDENT>raise RuntimeError('<STR_LIT>')<EOL><DEDENT><DEDENT>if issubclass(transport, http.client.HTTPConnection) is False:<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT>soapdata = str(sw)<EOL>self.h = transport(netloc, None, **self.transdict)<EOL>self.h.connect()<EOL>self.SendSOAPData(soapdata, url, soapaction, **kw)<EOL>
Send a message.  If url is None, use the value from the
        constructor (else error). obj is the object (data) to send.
        Data may be described with a requesttypecode keyword, the default 
        is the class's typecode (if there is one), else Any.

        Try to serialize as a Struct, if this is not possible serialize an Array.  If 
        data is a sequence of built-in python data types, it will be serialized as an
        Array, unless requesttypecode is specified.

        arguments:
            url -- 
            opname -- struct wrapper
            obj -- python instance

        key word arguments:
            nsdict -- 
            soapaction --
            wsaction -- WS-Address Action, goes in SOAP Header.
            endPointReference --  set by calling party, must be an 
                EndPointReference type instance.
            soapheaders -- list of pyobj, typically w/typecode attribute.
                serialized in the SOAP:Header.
            requesttypecode --