Exemplo n.º 1
0
 def callRemote(self, method, *args, **kwargs):
     payload = SOAPpy.buildSOAP(args=args, kw=kwargs, method=method,
                                header=self.header, namespace=self.namespace)
     return client.getPage(self.url, postdata=payload, method="POST",
                           headers={'content-type': 'text/xml',
                                    'SOAPAction': method}
                           ).addCallback(self._cbGotResult)
Exemplo n.º 2
0
	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)
Exemplo n.º 3
0
 def _methodNotFound(self, request, methodName):
     response = SOAPpy.buildSOAP(
         SOAPpy.faultType("%s:Client" % SOAPpy.NS.ENV_T,
                          "Method %s not found" % methodName),
         encoding=self.encoding,
     )
     self._sendResponse(request, response, status=500)
Exemplo n.º 4
0
 def callRemote(self, method, *args, **kwargs):
     payload = SOAPpy.buildSOAP(args=args, kw=kwargs, method=method,
                                header=self.header, namespace=self.namespace)
     return client.getPage(self.url, postdata=payload, method="POST",
                           headers={'content-type': 'text/xml',
                                    'SOAPAction': method}
                           ).addCallback(self._cbGotResult)
Exemplo n.º 5
0
 def _gotResult(self, result, request, methodName):
     # hack twisted.web.soap here:
     # do not wrap result in a <Result> element
     response = SOAPpy.buildSOAP(
             kw={'%sResponse' % methodName: result},
             encoding=self.encoding)
     self._sendResponse(request, response)
Exemplo n.º 6
0
 def _gotError(self, failure, request, methodName):
     e = failure.value
     if isinstance(e, SOAPpy.faultType):
         fault = e
     else:
         fault = SOAPpy.faultType("%s:Server" % SOAPpy.NS.ENV_T, "Method %s failed." % methodName)
     response = SOAPpy.buildSOAP(fault, encoding=self.encoding)
     self._sendResponse(request, response, status=500)
Exemplo n.º 7
0
 def callRemote(self, method, *args, **kwargs):
     print "callRemote: " + str(args)
     kwargs.setdefault('headers', {})['Content-Type'] = 'text/xml'
     payload = SOAPpy.buildSOAP(args=args, kw=kwargs, method=method,
                                header=None, namespace=None)
     return client.getPage(self.url, postdata=payload, method="POST",
                           headers = kwargs['headers']
                           ).addCallback(self._cbGotResult)
Exemplo n.º 8
0
 def _gotError(self, failure, request, methodName):
     e = failure.value
     if isinstance(e, SOAPpy.faultType):
         fault = e
     else:
         fault = SOAPpy.faultType("%s:Server" % SOAPpy.NS.ENV_T,
                                  "Method %s failed." % methodName)
     response = SOAPpy.buildSOAP(fault, encoding=self.encoding)
     self._sendResponse(request, response, status=500)
Exemplo n.º 9
0
 def callRemote(self, method, *args, **kwargs):
     print "callRemote: " + str(args)
     kwargs.setdefault('headers', {})['Content-Type'] = 'text/xml'
     payload = SOAPpy.buildSOAP(args=args,
                                kw=kwargs,
                                method=method,
                                header=None,
                                namespace=None)
     return client.getPage(self.url,
                           postdata=payload,
                           method="POST",
                           headers=kwargs['headers']).addCallback(
                               self._cbGotResult)
Exemplo n.º 10
0
 def _gotResult(self, result, request, methodName):
     if not isinstance(result, SOAPpy.voidType):
         result = {"Result": result}
     response = SOAPpy.buildSOAP(kw={'%sResponse' % methodName: result},
                               encoding=self.encoding)
     self._sendResponse(request, response)
Exemplo n.º 11
0
 def _methodNotFound(self, request, methodName):
     response = SOAPpy.buildSOAP(SOAPpy.faultType("%s:Client" % SOAPpy.NS.ENV_T,
                                              "Method %s not found" % methodName),
                               encoding=self.encoding)
     self._sendResponse(request, response, status=500)
Exemplo n.º 12
0
 def _gotResult(self, result, request, methodName):
     if not isinstance(result, SOAPpy.voidType):
         result = {"Result": result}
     response = SOAPpy.buildSOAP(kw={'%sResponse' % methodName: result},
                                 encoding=self.encoding)
     self._sendResponse(request, response)
Exemplo n.º 13
0
import sys
sys.path.insert(1, "..")

import SOAPpy

import time
dep = SOAPpy.dateTimeType((2004, 3, 24, 12, 30, 59, 4, 86, 0))
ret = SOAPpy.dateTimeType((2004, 3, 26, 12, 30, 59, 4, 86, 0))

in0 = SOAPpy.structType()
in0._addItem('outwardDate', dep)
in0._addItem('returnDate', ret)
in0._addItem('originAirport', 'den')
in0._addItem('destinationAirport', 'iad')


x = SOAPpy.buildSOAP(
              in0,
              method="getAirFareQuote",
              namespace="urn:SBGAirFareQuotes.sbg.travel.ws.dsdata.co.uk"
              )
              

wsdl = 'http://www.xmethods.net/sd/2001/TemperatureService.wsdl'
proxy = SOAPpy.WSDL.Proxy(wsdl)

Exemplo n.º 14
0
import sys
sys.path.insert(1, "..")

import SOAPpy

import time
dep = SOAPpy.dateTimeType((2004, 3, 24, 12, 30, 59, 4, 86, 0))
ret = SOAPpy.dateTimeType((2004, 3, 26, 12, 30, 59, 4, 86, 0))

in0 = SOAPpy.structType()
in0._addItem('outwardDate', dep)
in0._addItem('returnDate', ret)
in0._addItem('originAirport', 'den')
in0._addItem('destinationAirport', 'iad')

x = SOAPpy.buildSOAP(
    in0,
    method="getAirFareQuote",
    namespace="urn:SBGAirFareQuotes.sbg.travel.ws.dsdata.co.uk")

wsdl = 'http://www.xmethods.net/sd/2001/TemperatureService.wsdl'
proxy = SOAPpy.WSDL.Proxy(wsdl)
Exemplo n.º 15
0
def soap(method, attachments=[], **kwargs):
    req = SOAPpy.buildSOAP(method=method, kw=kwargs)
    headers = {'SOAPAction':'"/"'}
    req = urllib2.Request(JASPER_URL, req, headers)

    return SoapResponse(urllib2.urlopen(req))