作为参考,我研究了以下三个问题:
从Flask视图返回JSON响应
使用Flask响应发送JSON和状态代码
返回请求。来自 Flask 的响应对象
如标题所示,我试图从flask post方法返回一个JSON响应。烧瓶路径如下:
@app.route('/login', methods=['POST'])
def login_route():
content = request.json
jwt = get_authorization(content['username'], content['password'])
return {'session-token': jwt} , 200
在我的web应用程序中,我希望将< code>session-token存储在cookies中的什么位置(目前)。
目前在web端,我有以下代码:
static postWithJSONResponse(url, body, onFetchComplete, onFetchFailure) {
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(body)
})
.then((data) => onFetchComplete(data))
.catch(error => onFetchFailure(error));
}
componentDidMount() {
NetworkUtils.postWithJSONResponse('/login', this.state.userObject,
(data) => {
console.log(data);
},
(error) => {
});
}
其中 userObject
由用户名和密码
属性组成
。鉴于上面列出的先前搜索,我已经尝试了烧瓶路线的一些变体:
基于此问题的变体
from flask import jsonify
@app.route('/login', post)
def login_route():
content = request.json
d = {}
d['session-token'] = get_authorization(content['username'], content['password'])
return jsonify(d)
这个变化来自同一帖子:
@app.route('/login', post)
def login_route():
content = request.json
jwt = get_authorization(content['username'], content['password'])
app.response_class(
response=json.dumps({'session-token': jwt}),
status=200,
mimetype='application/json'
)
最后,建议尝试创建一个新的响应对象:
from flask import Flask, request, make_response
@app.route('/login', methods=['POST'])
def login_route():
content = request.json
jwt = get_authorization(content['username'], content['password'])
resp = make_response(json.dumps({'session-token': jwt}), 200)
resp.headers['Content-Type'] = 'application/json'
return resp
所有这3次尝试都将以下json响应对象返回到我的chrome控制台:
Response {type: "basic", url: "http://localhost:3000/login", redirected: false, status: 200, ok: true, …}
body: ReadableStream
locked: false
__proto__: ReadableStream
bodyUsed: false
headers: Headers
__proto__: Headers
ok: true
redirected: false
status: 200
statusText: "OK"
type: "basic"
url: "http://localhost:3000/login"
__proto__: Response
如您所见,响应对象不包含会话令牌
的单个条目。我真的不确定这里可能出了什么问题,我不确定问题是否与烧瓶路线或javascript有关。毋庸置疑,我可以使用一些帮助,任何建议将不胜感激。我使用的是 Flask 版本 1.1.2。
Javascript中的< code>fetch API很好,因为它提供了您在登录时看到的选项,比如可能以流的形式访问主体(现在是TC 39...),但对于90%的情况来说,这完全是过度设计了。要记住的魔咒如下:
// can only do this inside an async function
const resp = await fetch(someURL);
const jsonData = await resp.json();
// step 3, profit
fetch(someURL)
.then(resp => resp.json())
.then(jsonData => /* profit! */);
它们在功能上是等价的。如果你总是想在学校的午餐时间坐在酷孩子的桌子旁,那就用新的吧。如果你是一个像我一样的老顽固,抱怨孩子们这些天的餐桌和午餐时间都很酷,那就用另一个吧。
我得到以下错误 响应数据为空。我做错了什么,或者我在代码中遗漏了什么?
现代Web框架使用路由技术来帮助用户记住应用程序URL。 无需从主页导航即可直接访问所需页面。 Flask中的装饰器用于将URL绑定到函数。 例如 - 这里,URL 规则绑定到函数。 因此,如果用户访问URL : ,就会调用函数,这个函数中的执行的结果输出将在浏览器中呈现。 应用程序对象的函数也可用于将URL与函数绑定,如上例所示,使用。
我可以在POST请求时发送对象列表作为响应,并在VueJs客户端中接收它 但是当我尝试用自定义类响应时(我甚至在请求映射注释中添加了) 在axios的帮助下发送VueJs端请求。邮递 Vue用户界面客户端接收 为什么我可以用对象列表响应而不能用POJO响应,以及如何解决这个问题?非常感谢。 PS.项目依赖于jackson-数据库v2.8.2和Spring v4.3.1
问题内容: 我知道我可以使用设置响应的状态码。设置状态代码时如何返回JSON数据? 问题答案: 使用。此方法采用任何可序列化的数据类型。例如,在以下示例中,我使用了字典。 要返回状态码,请返回响应和代码的元组: 请注意,默认状态代码为200,因此无需指定该代码。 更新 从 Flask 1.1开始 ,return语句将在第一个返回值中自动创建一个字典。您可以直接返回数据: 您还可以使用状态代码返回它
问题内容: 我正在使用Retrofit集成我的Web服务,但我不明白如何使用POST请求将JSON对象发送到服务器。我目前陷入困境,这是我的代码: 活动:- PostInterface:- 要求JSON:- 响应JSON:- 问题答案: 在gradle中使用这些 使用这两个POJO类........ LoginData.class LoginResult.class 像这样使用API 使用这样的呼
我试图用json作为主体数据在jmeter中发布帖子,但我只得到了400。我发送到的URL只接受json。我在《邮差》中也用过同样的卷发,效果很好。我曾尝试将json作为一个没有名称的值放入参数中,但没有成功。 我只是想发送{“uid”:“jmtest”,“name”:“newdevice”}。 对不起,我不能发布更多的链接。 采样结果为 请求看起来像 响应数据为