This question has been flagged
1 Reply
11194 Views

Hello everyone , 

i'm working on a web service, on my program i create a connection :

XmlRpcClient xmlrpcLogin = new XmlRpcClient();  
        XmlRpcClientConfigImpl xmlrpcConfigLogin = new XmlRpcClientConfigImpl();  //instance de XmlRpcClient    
        xmlrpcConfigLogin.setEnabledForExtensions(true);  
        URL url=new URL("http",IP,8069,"/xmlrpc/common"); 

       xmlrpcConfigLogin.setServerURL(url); 

        xmlrpcLogin.setConfig(xmlrpcConfigLogin);   
        Vector<String> params = new Vector<String>();    
        params.add(DBname);
        params.add(Login); 
        params.add(DBpsw); 

        xmlrpcLogin.execute("login", params);

My question is : How can i logout  (disconnect )from this connection , i search  on the internet for the instuction but with no result 

Thanks for helping

Avatar
Discard

Same question here : how do you disconnect the pipe?

Best Answer

Hello feriel bendimerad,

XMLRPC webservices in Odoo/OpenERP are in stateless form. Hence we do not require session logout.

Lets take a simple example to prove this :


import xmlrpclib
x=0
while x<3:
    
    x+=1
    print '------------Session {}------------'.format(x)
    #LOGIN DETAILS
    #ENTER YOUR LOGIN CREDENTIAL TO CONNECT

    val=raw_input('Enter username,password,database name seperated by commas : ').split(',') #seperate by commas is mandatory else wrong i/p
    username,password,database = val[0],val[1],val[2]
    sock_comm = xmlrpclib.ServerProxy('http://yourdomain/xmlrpc/common')

    uid = sock_comm.login(database,username,password)

    sock = xmlrpclib.ServerProxy('http://yourdomain/xmlrpc/object')
    
   
    so_ids = sock.execute(database,uid, password,'sale.order', 'search',[])
  
    print 'Total Sale Orders={}'.format(len(so_ids))
    if x==2:
        print 'This is your last attempt'
print '3 attempts over....Program Terminated!!!'

######################################
OUTPUT OF THE PROGRAM
------------Session 1------------
Enter username,password,database name seperated by commas : my_username,my_password,mydatabase1
Total Sale Orders=1
------------Session 2------------
Enter username,password,database name seperated by commas : my_username,my_password,mydatabase2
Total Sale Orders=39
This is your last attempt
------------Session 3------------
Enter username,password,database name seperated by commas : my_username,my_password,mydatabase3
Total Sale Orders=15
3 attempts over....Program Terminated!!!

##################################

So you can see i have accessed 3 different databases sale order records without session logout

 

 

Avatar
Discard

Thank you for the answer. Does this mean that we have to login at each rpc call?