我嘲笑一个Post api(用C#编写),它在调用时返回bool值true或false。 content-type是请求的application / json
true
我现在正试图使用Flask在Python中模拟该端点,并且我努力使其传递一个布尔值。
我试过
return make_response(True,200)
或只是
return True
并且在这两种情况下,api都无法发送所需的响应并抛出错误。
在一次绝望的尝试中,我试图回归" True"作为一个字符串
return make_response("True", 200)
这似乎在模拟级别工作,但消耗代码(c#)失败,因为它试图通过
将返回值转换为boolresult = response.Content.ReadAsAsync<bool>().Result
关于如何使模拟api返回bool值的任何想法???
答案 0 :(得分:3)
您应该考虑发送json数据。
return json.dumps(True)
答案 1 :(得分:2)
您没有返回有效的JSON。在JSON中,布尔值是小写的,"true"
。您可以使用json.dumps
生成值的正确JSON序列化。您还应该将响应的内容类型设置为application/json
。使用app.response_class
构建响应。
from flask import json
return app.response_class(json.dumps(True), content_type='application/json')
通常,您会发送多个值作为响应。 Flask提供jsonify
作为返回JSON对象的快捷方式,其中包含传递它的键和值。 (在Flask开发版中,它已被改进,以处理除了对象之外的其他数据。)
from flask import jsonify
return jsonify(result=True, id=id)