Http响应正文具有Dart Aqueduct服务器的引号

时间:2019-04-26 19:29:00

标签: json dart httpresponse aqueduct

从这样的渡槽控制器返回响应时

return Response.ok('hello');

响应的正文周围带有引号:

"hello"

当我返回这样的JSON字符串时,同样的事情:

return Response.ok('{"token":"$token"}');

我明白了:

"{\"token\":\"eyJhbG...soOFY8\"}"

这正在搞乱客户端的JSON解析。

有什么方法不发送引号吗?

1 个答案:

答案 0 :(得分:0)

响应的默认ContentType已经是JSON。如果要发送平面文本,则需要将内容类型设置为纯文本。

// import 'dart:io';

return Response.ok('hello')..contentType = ContentType.text;

响应正文将为

hello

要发送JSON,只需发送一个Map而不是自己将其转换为字符串:

return Response.ok({'token':token});

这将使响应正文为

{"token":"eyJhbGc...vCxdE"}

另请参见

信用

感谢Joe Conway上的Aqueduct Slack channel帮助解决此问题。我在这里以问答形式添加解决方案,以便其他人可以更轻松地找到它。