在odoo 12中为json get请求发送json数据
我想从odoo控制器发送json数据。为此,我在控制器下面创建了json数据在odoo 12中为json get请求发送json数据,json,api,controller,postman,odoo,Json,Api,Controller,Postman,Odoo,我想从odoo控制器发送json数据。为此,我在控制器下面创建了json数据 from odoo.http import Response import json @http.route('/api/json_get_request',auth='public',type='json',methods=["GET"],csrf=False) def printjson(self,**kw): headers={'content-type':'application/
from odoo.http import Response
import json
@http.route('/api/json_get_request',auth='public',type='json',methods=["GET"],csrf=False)
def printjson(self,**kw):
headers={'content-type':'application/json'}
return Response(json.dumps({"test":"json string"}),headers=headers)
但在postman中访问会给我提供无效的json数据,然后我会检查该响应标题中的postman控制台->显示内容类型:“text/html”。
发送json类型的数据后不理解为什么未接收json数据
通过postman上的http请求访问后,我得到了正确的json数据。
请给我提个建议
提前感谢处理“json”请求的第一件事方法应该直接返回字典:
@http.route('/api/json_get_request', auth='public', type='json', csrf=False)
def printjson(self, **kw):
return {'attribute': 'test'}
这将返回如下结果:
{
"jsonrpc": "2.0",
"id": null,
"result": {
"attribute": "test"
}
}
出现此错误是因为您没有随请求发送任何json
数据。
您可以使用请求
模块测试代码:
>>> import requests
>>> import json
>>> url = 'http://localhost:8069/api/json_get_request'
>>> data = {'params': {'test': 100}}
>>> headers={'content-type':'application/json'}
>>> requests.get(url, data=json.dumps(data), headers=headers)
<Response [404]>
导入请求
>>>导入json
>>>url='1〕http://localhost:8069/api/json_get_request'
>>>数据={'params':{'test':100}
>>>headers={'content-type':'application/json'}
>>>requests.get(url,data=json.dumps(data),headers=headers)
它给我这个错误,因为没有选择数据库,并且我有多个数据库。
如果只有一个数据库,则会看到正确的结果。
但当你从我用的邮递员分机上测试它时
因为我已经准备好登录到Odoo,方法已经成功执行,所以只需寻找更好的postman扩展,或者搜索如何使用当前的postman发送
json
数据。您需要在请求中发送一些json数据。处理“json”请求的第一件事方法应该直接返回字典:
@http.route('/api/json_get_request', auth='public', type='json', csrf=False)
def printjson(self, **kw):
return {'attribute': 'test'}
这将返回如下结果:
{
"jsonrpc": "2.0",
"id": null,
"result": {
"attribute": "test"
}
}
出现此错误是因为您没有随请求发送任何json
数据。
您可以使用请求
模块测试代码:
>>> import requests
>>> import json
>>> url = 'http://localhost:8069/api/json_get_request'
>>> data = {'params': {'test': 100}}
>>> headers={'content-type':'application/json'}
>>> requests.get(url, data=json.dumps(data), headers=headers)
<Response [404]>
导入请求
>>>导入json
>>>url='1〕http://localhost:8069/api/json_get_request'
>>>数据={'params':{'test':100}
>>>headers={'content-type':'application/json'}
>>>requests.get(url,data=json.dumps(data),headers=headers)
它给我这个错误,因为没有选择数据库,并且我有多个数据库。
如果只有一个数据库,则会看到正确的结果。
但当你从我用的邮递员分机上测试它时
因为我已经准备好登录到Odoo,方法已经成功执行,所以只需寻找更好的postman扩展,或者搜索如何使用当前的postman发送
json
数据。您需要在请求中发送一些json数据。感谢@Charif DZ为您提供的时间和答案。是的,我没有发送json数据,这是发生错误的原因。在发送json数据并将字典转换为json后[json.dumps({“test”:“json string”})]给出结果。你能分享一下关于python for odooI中使用的请求的链接或文档吗?我真的没有任何文档,我经常去看Odoo代码,并试图了解到底发生了什么。他们在那里做了很多事情——阅读、测试和谷歌搜索——你会学到任何东西。感谢@Charif DZ为你提供的时间和答案。是的,我没有发送json数据,这是发生错误的原因。在发送json数据并将字典转换为json后[json.dumps({“test”:“json string”})]给出结果。你能分享一下关于python for odooI中使用的请求的链接或文档吗?我真的没有任何文档,我经常去看Odoo代码,并试图了解到底发生了什么。他们在那里做了很多事情——阅读、测试和谷歌搜索——你会学到任何东西。