Skip to Content
Menu
This question has been flagged
1 Reply
12413 Views

Guys:

I create a web controller:

from openerp import http 
import simplejson
from openerp.http import Response

class WebClient(http.Controller):

@http.route('/web/webclient/ejemplo', type='json',auth='public', methods=['POST'], website=True)
@serialize_exception
def index(self, **args):
print 'CONNECTION SUCCESSFUL ***'
print 'args *** ' , args

name = args.get('name', False)
email = args.get('email', False)

if not name:
Response.status = '400 Bad Request'
#return '{"response": "OK"}'
return request.make_response(simplejson.dumps({"response": "OK"}),
[('Content-Type', 'application/json'),
])


And call this method whit this python script:

import json
import requests
url = 'http://localhost:8069/web/webclient/ejemplo'
headers = {'Content-Type': 'application/json'}
data = {
'jsonrpc':'2.0',
'method':'call',
'params':{'context':{},
'name':'hola',
'email':'emailing'},
}
}
data_json = json.dumps(data)
r = requests.post(url=url, data=data_json, headers=headers)
c = r.text
print c

print show this:

{"jsonrpc": "2.0", "id": null, 
"error": {"message": "Odoo Server Error", "code": 200,
"data": {"debug": "Traceback (most recent call last):\n
File \"/home/opencons/herramientas/odoo-8.0/openerp/http.py\", line 537, in _handle_exception\n return super(JsonRequest, self)._handle_exception(exception)\n File \"/home/opencons/herramientas/odoo-8.0/openerp/http.py\", line 1422, in _dispatch_nodb\n func, arguments = self.nodb_routing_map.bind_to_environ(request.httprequest.environ).match()\n File \"/usr/lib/python2.7/dist-packages/werkzeug/routing.py\", line 1433, in match\n raise NotFound()\nNotFound: 404: Not Found\n",
"message": "", "name": "werkzeug.exceptions.NotFound", "arguments": []}}}

and the console

2017-04-19 22:16:33,563 4880 INFO ? openerp.http: HTTP Configuring static files 2017-04-19 22:16:33,568 4880 INFO None openerp.http: Generating nondb routing openerp.conf.server_wide_modules ['web', 'web_kanban']
2017-04-19 22:16:33,575 4880 ERROR None openerp.http: Exception during JSON request handling.
Traceback (most recent call last):
File "/home/opencons/herramientas/odoo-8.0/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/opencons/herramientas/odoo-8.0/openerp/http.py", line 1422, in _dispatch_nodb
func, arguments = self.nodb_routing_map.bind_to_environ(request.httprequest.environ).match()
File "/usr/lib/python2.7/dist-packages/werkzeug/routing.py", line 1433, in match
raise NotFound()
NotFound: 404: Not Found 2017-04-19 22:16:33,576 4880 INFO None werkzeug: 127.0.0.1 - - [19/Apr/2017 22:16:33] "POST /web/webclient/ejemplo HTTP/1.1" 200 -

this code is in odoo v8.

Is posible call web controllers from python script?

and Why does odoov8 show the error NotFounf: 404?

Regards
Avatar
Discard
Best Answer

You can refer this: https://www.surekhatech.com/blog/json-rpc-call-with-odoo-web-controller

Avatar
Discard