xmlrpc client through proxy to https server

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Gustavo Rahal

    xmlrpc client through proxy to https server

    Hi

    I'm trying to build a xmlrpc client that uses a proxy to connect to
    a xmlrpc server in https.
    I've googled and came up with a code snippet that doesn't actually
    work.

    What is missing?


    class ProxiedTranspor t(xmlrpclib.Tra nsport):
    def set_proxy(self, proxy):
    self.proxy = proxy
    def make_connection (self, host):
    self.realhost = host
    # i've also tried httplib.HTTPS, in this case I get
    # "socket.sslerro r: (1, 'error:140770FC :SSL routines:SSL23_ GET_SERVER_HELL O:unknown protocol')"
    h = httplib.HTTP(se lf.proxy)
    #trivial setup for ssl socket
    # proxy_connect=' CONNECT %s:%s HTTP/1.1\r\n'%('ftp3 .linux.ibm.com' , '443')
    # user_agent='Use r-Agent: python\r\n'
    # proxy_pieces=pr oxy_connect+use r_agent+'\r\n'
    # proxy=socket.so cket(socket.AF_ INET,socket.SOC K_STREAM)
    # proxy.connect(( '9.47.67.150', 3128))
    # proxy.sendall(p roxy_pieces)
    # response=proxy. recv(8192)
    # ssl = socket.ssl(prox y, None, None)
    # sock = httplib.FakeSoc ket(proxy, ssl)
    # h.sock = sock
    return h
    def send_request(se lf, connection, handler, request_body):
    connection.putr equest("POST", 'https://%s%s' % (self.realhost, handler))
    def send_host(self, connection, host):
    connection.puth eader('Host', self.realhost)


    p = ProxiedTranspor t()
    p.set_proxy('9. 47.67.150:3128' )
    server = xmlrpclib.Serve r('https://ftp3.linux.ibm. com/rpc/index.php', transport=p)
    print server.user.ing roup("username" , "group")

    -------------------

    The Result:

    xmlrpclib.Proto colError: <ProtocolErro r for
    ftp3.linux.ibm. com/rpc/index.php: 501 Not Implemented>


    The method i'm calling is "implemente d". If I try straight xmlrpc
    connection through a machine that is not behind a firewall things work
    fine.


    Appreciate help

    Thanks
    Gustavo

Working...