Http 响应正文包含来自 Dart Aqueduct 服务器的引号
Http response body has quote marks from Dart Aqueduct server
当像这样 return 来自 Aqueduct 控制器的响应时
return Response.ok('hello');
响应正文周围有引号:
"hello"
当我 return 一个像这样的 JSON 字符串时同样的事情:
return Response.ok('{"token":"$token"}');
我明白了:
"{\"token\":\"eyJhbG...soOFY8\"}"
这会扰乱客户端的 JSON 解析。
有什么办法可以不发送引号吗?
响应的默认 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 on the Aqueduct Slack channel 帮助解决这个问题。我在这里添加解决方案作为问答,以便其他人可以更容易地找到它。
当像这样 return 来自 Aqueduct 控制器的响应时
return Response.ok('hello');
响应正文周围有引号:
"hello"
当我 return 一个像这样的 JSON 字符串时同样的事情:
return Response.ok('{"token":"$token"}');
我明白了:
"{\"token\":\"eyJhbG...soOFY8\"}"
这会扰乱客户端的 JSON 解析。
有什么办法可以不发送引号吗?
响应的默认 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 on the Aqueduct Slack channel 帮助解决这个问题。我在这里添加解决方案作为问答,以便其他人可以更容易地找到它。