如何读取客户端发送的客户端post请求正文表单dart服务器

问题描述 投票:0回答:1

我有一个飞镖服务器

 httpServer = await HttpServer.bind(InternetAddress.anyIPv4, myPort);

并且客户端应该发送一个在其正文中包含一些 json 数据的 post 请求, 如何阅读那个身体

..addRouter(fileAddedToShareSpaceEndPoint, HttpMethod.POST,
        (request, response) {
      //? here make a provider to handle peer share space items then update the items if the viewed items are for the updated peer
      var headers = request.headers;
      

      print(headers);
    })

我得到了一些答案,说您可以使用以下代码,但我都遇到了错误

var body1 = await request.transform(Utf8Decoder()).join();
// or 
var body2 =  request.transform(utf8.decoder).join();

我已经有了一个完整的服务器设置并且它正在运行所以我不想使用其他库,比如 shelf 或其他东西,因为这会是很多迁移工作

flutter dart http-post httpserver
1个回答
1
投票

需要绑定模式解析req,每一个新的bind req,完成join() 现在你已经处理了“content”中所有新的绑定启动请求流 现在你可以使用内容来解码了。

    String content = await utf8.decoder.bind(req).join();
    var data = jsonDecode(content) as Map<String, dynamic>;

阅读这篇文章

https://medium.com/ionicfirebaseapp/handling-a-post-request-in-a-server-in-flutter-4f4bcf1e00b7

© www.soinside.com 2019 - 2024. All rights reserved.