【问题标题】:How to access Dart shelf post body parameters?如何访问 Dart 货架柱体参数?
【发布时间】:2022-08-21 21:24:47
【问题描述】:

我正在使用 Dart Shelf 框架来构建 API。获得工作正常,但我在发布时遇到问题。我无法访问服务器中发布请求的任何正文参数。这是我尝试过的。

// shelf-router
router.post(\'/login\', (Request req) async {
  final body = await req.readAsString();
// to check
 print(body); // outputs null
 return 
 Response.ok(\'OK\');
});

我如何测试这个?

将邮递员与端点和正文类型原始 (JSON) 一起使用。

有效载荷为

{
  \"user\":\"testUser\",
  \"password\":\"p455w0rd\"
}

我什至尝试将 contenttype 标头设置为 application/JSON 但也没有运气。

  • 我假设“输出空字符串”实际上意味着“输出空字符串”? (Request.readAsString 被声明为返回一个完成为不可空类型的Future。)router.post 是什么?你确定Request 还没有被读取(根据the documentation,它只能被调用一次)?你能创建一个最小的、可重现的例子吗?
  • 让我更新代码
  • 你解决了你的问题吗?你从来没有更新你的问题。
  • 不幸的是,没有,我已经放弃了使用书架获取帖子数据。遗憾的是,我现在正在发送密码,使用 get,编码在 url 中。

标签: json dart postman dart-shelf


【解决方案1】:

在您的请求处理程序函数中尝试此操作..

final String query = await request.readAsString();
Map queryParams = Uri(query: query).queryParameters;
print(queryParams);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多