'@param method: The name of the method to call.
@type method: C{str}
@param allowNone: allow the use of None values in parameters. It\'s
passed to the underlying xmlrpclib implementation. Defaults to
C{False}.
@type allowNone: C{bool} or L{None}
@param args: the arguments to pass to the method.
@type args: C{tuple}
@param canceller: A 1-argument callable passed to the deferred as the
canceller callback.
@type canceller: callable or L{None}'

def __init__(self, path, host, method, user=None, password=None, allowNone=False, args=(), canceller=None, useDateTime=False):

    (self.path, self.host) = (path, host)
    (self.user, self.password) = (user, password)
    self.payload = (payloadTemplate % (method, xmlrpclib.dumps(args, allow_none=allowNone)))
    if isinstance(self.payload, unicode):
        self.payload = self.payload.encode('utf8')
    self.deferred = defer.Deferred(canceller)
    self.useDateTime = useDateTime
