On 26/08/2013 23:21, Steve Heyns wrote: > I have tried to POSTing the following to localhost:8000/try > > {method:"sever.version",id:1,params:[]}
Try: {"method": "system.server.listMethods", "id": 1, "params": [null, null]} > and I receive a 500 internal error as a response. But in the trytond log > file there is no errors [...] > The tryton client works fine in this respect nut how does a trace translate > to something to be posted ? Like what does the following translate to ? > > INFO:tryton.rpc:common.server.version(None, None) > > I would assume that this is translated to : > {method:"common.server.version",id:1,params:['','']} Try: {"method": "common.server.version", "id":1, "params": [null, null]} You could use replace "server" by any string or use "common..version". Here is a Bash script which use "common.server.version" and "system.server.listMethods": > #!/bin/bash > DBNAME=demo2.8 > HOST=https://demo.tryton.org:8000 > > # Définition du contenu de la requête > data=$(cat <<DATA > {"id": 1, "method": "common.server.version", "params": [null, null]} > DATA > ) > > # Envoie de la requête au serveur Tryton > wget -q -O - --no-http-keep-alive --post-data="$data" \ > --header="Content-Type: text/json" --no-check-certificate \ > $HOST > > echo > > # Définition du contenu de la requête > data=$(cat <<DATA > {"id": 1, "method": "system.server.listMethods", "params": [null, null]} > DATA > ) > > # Envoie de la requête au serveur Tryton > wget -q -O - --no-http-keep-alive --post-data="$data" \ > --header="Content-Type: text/json" --no-check-certificate \ > $HOST/$DBNAME > > echo The format of JSONRPC query is: { "id": id of the request, used by response "method": name of the call, "params": [ first parameter, second parameter, third parameter, ... ] } Requests can be categorized in two ways: - anonymous calls - authenticated calls "common.server.version" and "system.server.listMethods" are anonymous. In order to authenticate an user, you must perform the anonymous call "common.server.login(username, password)". If successful, this call returns user id and a cookie. User id and cookie are first and second parameters of authenticated calls. Context is the last parameter of authenticated call, it could be: - an empty dict - retrieved with authenticated call: model.res.user.get_preferences(user_id, cookie, True, {}) An example: model "ir.model", read fields "info", "model", "name" and "module" records 47 and 71: > { > "id": 8, > "method": "model.ir.model.read", > "params": > [ > 1, > "qdWWyL6guIJrnxTFGaWX7xc6o/BH+QnZbFcgU=", > [47, 71], > ["info", "model", "name", "module"], > { > "language": "fr_FR", "locale": { > "date": "%d.%m.%Y", "thousands_sep": "", "grouping": [], > "decimal_point": "," > }, > "language_direction": "ltr", "groups": [1], "timezone": null > } > ] > } In order to manipulate the data, the following calls are available: model.<modelname>.(search|read|create|write|delete|copy) -- Pierre-Louis