在odoo 12中为json get请求发送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/

我想从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/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代码,并试图了解到底发生了什么。他们在那里做了很多事情——阅读、测试和谷歌搜索——你会学到任何东西。