dart - 用dart重写请求URI

标签 dart dart-io

在node.js中,您可以通过执行以下操作来调整请求的网址:

app.use(function(req, res, next) {
  if (req.url.slice(-1) === '/') {
    req.url = req.url.slice(0, -1);
  }
  next();
});

由于所有请求属性,Uri及其路径仅具有 setter/getter ,因此以下操作在Dart中失败。有什么建议可以实现吗?也许通过创建一个新的HttpRequest并将其响应传递给原始请求?

void main() {
  var virDir = new VirtualDirectory("../somewhere_else");

  HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 8080).then((server) {
    print("Serving at ${server.address}:${server.port}");
    server.listen((HttpRequest request) {
      request.uri.path = "/newPath";
      virDir.serverRequest(request);
    });
  });
}

最佳答案

从http_server(VirtualDirectory)0.9.3版开始,我向构造函数添加了一个可选的pathPrefix命名参数。

参见http://www.dartdocs.org/documentation/http_server/0.9.3/index.html#http_server/http_server.VirtualDirectory#id_VirtualDirectory-

这样就可以准确地执行您要执行的操作,而无需重写请求的Uri。

关于dart - 用dart重写请求URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561257/

相关文章:

dart - 与 java 的实现相比,为什么这个 Dart 代码这么慢?

asynchronous - Dart中的异步/等待模式?

dart - Flutter android 等效于 scaleX 和 scaleY 属性

android - 如何在 flutter 中扩展一个 textField 看起来像一个文本区域

flutter - 如何在 Flutter 中使用集合 for 循环?

websocket - dart,将http请求转换为websocket?

dart - Dart:并行处理传入的HTTP请求

flutter - 如何使用moor_flutter包计算sqlite db表中的记录?

android - TextEditingController 使小部件失去其先前的状态

Dart http_server 服务 index.html 但不拉依赖