Usman Ajmal wrote:

And i also fount that a typical system.auth call will look like:

POST /xmlrpc/clarens_server.py HTTP/1.0
Host: localhost
User-Agent: xmlrpclib.py/0.9.9 (by www.pythonware.com 
<http://www.pythonware.com>)

Content-Type: text/xml
Content-Length: 105
AUTHORIZATION: Basic MkhVTm9VazYxbXArVEZLS0dCY2tIRlA3bjVzPQo6RnJvbSBi
<?xml version='1.0'?>
<methodCall>
  <methodName>system.auth</methodName>

  <params>
  </params>
</methodCall>


Problem is that i don't know how do i generate above xml system.auth call. Can anyone please tell me how do call a function, setting the header of the call too?

you need to plugin a custom transport.  see this page for an example:

    http://www.python.org/doc/lib/xmlrpc-client-example.html

in your case, it should be sufficient to override send_request, e.g. (untested):

    class SecureTransport(xmlrpclib.Transport):

        def set_authorization(self, ustring, text_ucert):
            self.authoriation = encodestring(
                "%s:%s" % (ustring,text_ucert)
            )

        def send_request(self, connection, handler, request_body):
            connection.putrequest("POST", handler)
            connection.putheader("Authorization",
                "Basic %s" % self.authorization
            )

and instantiate the transport by doing

    t = SecureTransport()
    t.set_authorization(ustring, text_ucert)

before passing to the server proxy.

</F>

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to