dart - 如何使用 Dart 解析表单提交?

标签 dart dart-io

我用 Dart 写了一个 HTTP 服务器,现在我想解析表单提交。具体来说,我想处理从 HTML 表单提交的 x-url-form-encoded 表单。我怎样才能用 dart:io 做到这一点图书馆?

最佳答案

使用 HttpBodyHandler 类读取 HTTP 请求的正文并将其转换为有用的内容。在表单提交的情况下,您可以将其转换为 Map。

import 'dart:io';

main() {
  HttpServer.bind('0.0.0.0', 8888).then((HttpServer server) {
    server.listen((HttpRequest req) {
      if (req.uri.path == '/submit' && req.method == 'POST') {
        print('received submit');
        HttpBodyHandler.processRequest(req).then((HttpBody body) {
          print(body.body.runtimeType); // Map
          req.response.headers.add('Access-Control-Allow-Origin', '*');
          req.response.headers.add('Content-Type', 'text/plain');
          req.response.statusCode = 201;
          req.response.write(body.body.toString());
          req.response.close();
        })
        .catchError((e) => print('Error parsing body: $e'));
      }
    });
  });
}

关于dart - 如何使用 Dart 解析表单提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16953152/

相关文章:

dart - 使用Dart:IO Process类运行jar文件?

dart - 如何格式化内插字符串

dart - 在 Dart 中从进程流式传输标准输出的最佳方法是什么?

dart-io - 如何使用 "dart:io"更改文件日期属性(至少修改日期)?

dart:io 和 dart:html 是互斥的

flutter - 如何在导航上放置父级小部件的同级

Dart 产生来自另一个流监听器的流事件

flutter - 尝试显示项目列表时,显示“<List <dynamic >' is not a subtype of type ' List <Widget>”

dart - 如何编写Dart 'worker'服务器

dart - 你如何在 Dart 中运行一个交互式进程?