soap.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:p2pool-bch 作者: amarian12 项目源码 文件源码
def call(self, method, **kwargs):
        """
        Call the given remote method with the given arguments, as keywords.

        Returns a deferred, called with SOAPpy structure representing
        the soap response.

        @param method: The method name to call, eg. 'GetExternalIP'
        @param kwargs: The parameters of the call, as keywords
        @return: A deferred called with the external ip address of this host
        @rtype: L{twisted.internet.defer.Deferred}
        """
        payload = SOAPpy.buildSOAP(method=method, config=Config, namespace=self._prefix, kw=kwargs)
        # Here begins the nasty hack
        payload = payload.replace(
            # Upnp wants s: instead of SOAP-ENV
            'SOAP-ENV','s').replace(
            # Doesn't seem to like these encoding stuff
            'xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"', '').replace(
            'SOAP-ENC:root="1"', '').replace(
            # And it wants u: instead of ns1 namespace for arguments..
            'ns1','u')

        logging.debug("SOAP Payload:\n%s", payload)

        return client.getPage(self._url, postdata=payload, method="POST",
            headers={'content-type': 'text/xml',        'SOAPACTION': '%s#%s' % (self._prefix, method)}
    ).addCallbacks(self._got_page, self._got_error)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号