Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
13499 Lượt xem

I'm having some trouble requesting data through the web API. What works is logging in. I log in by requesting /web/session/authenticate and I get a session id in return. With this session id I would like to request some data.


I try requesting the data through /web/dataset/search_read given the following parameters:

[content] => {"jsonrpc":"2.0","method":"call","id":"<ID_GOES_HERE>","params":{"model":"product.product","domain":[],"fields":["price"],"session_id":"<SESSION_ID_GOES_HERE>"}}
[header] => Content-Type: application/json
Connection: Close
Cookie: session_id=<SESSION_ID_GOES_HERE>; Expires=Sun, 21-Sep-2014 11:59:02 GMT; Max-Age=7776000; Path=/
[method] => POST
[timeout] => 5

In the return headers of the search request is a HTTP/1.1 403 FORBIDDEN.

Ofcourse, the session id I send with the request is the same as I get in return from the server when I log in. Also, when i request /web/session/get_session_info, I get this in return with the correct session id:

{"jsonrpc": "2.0", "id": "<ID_GOES_HERE>", "result": {"username": "<USERNAME_GOES_HERE>", "user_context": {}, "db": "<DB_GOES_HERE>", "uid": false, "session_id": "<SESSION_ID_GOES_HERE>"}}

I notice that user_context is empty and the uid is false. Can anyone tell me if I'm doing something wrong? I'm using the online version of Odoo.

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

I had the same issue,

add the session id to the header of request not the body,

x-openerp-session-id:<your session id>

 

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

I have same problem with odoo 12 . my app is work fine by odoo 10 and odoo 11.

did you find any solution?

thanks

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

I have never used the web API this way so I don't know anything about that, but what I can tell you is that almost every function of the ORM in Odoo uses the UID to determine if a user is able to perform said function. 

Are you able to manually provide a uid? You can use the admin's uid for testing purposes (this is usually id 1). 

Also, check if the call for search_read is already implemented. I have tried it recently and found it not to be working (although it was in the docs). Try a simple search first and see if you get any results.. 

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 12 19
7297
0
thg 10 20
3998
2
thg 7 18
8517
1
thg 8 25
354
2
thg 7 25
1280