我正在模拟一个Post api (用C#编写),它在被调用时返回一个布尔值true或false。请求的content-type为application/json
true
我现在正在尝试使用Flask在Python中模拟该端点,并且正在努力使其传递一个布尔值。
我试过了
return make_response(True,200)
或者简单地说
return True
在这两种情况下,api都无法发送所需的响应并抛出错误。
在一次绝望的尝试中,我尝试将"True“作为字符串返回
return make_response("True", 200)
这似乎在模拟级别工作,但消费代码(c#)失败了,因为它试图通过以下方式将返回值转换为布尔值
result = response.Content.ReadAsAsync<bool>().Result
有关于如何让模拟api返回布尔值的想法吗?
发布于 2016-02-01 22:56:10
您应该考虑发送json数据。
return json.dumps(True)
发布于 2016-02-01 23:29:53
您没有返回有效的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 dev版本中得到了改进,可以处理除对象之外的其他数据。)
from flask import jsonify
return jsonify(result=True, id=id)
https://stackoverflow.com/questions/35133318
复制相似问题