Stream 如何在dart中通过一个正在进行的http调用传递到另一个服务器?

Stream 如何在dart中通过一个正在进行的http调用传递到另一个服务器?,stream,dart,pipe,backend,Stream,Dart,Pipe,Backend,我有一个Dart HTTP服务正在运行,如果该服务发布了一个文件,我想通过这个调用传递给另一个服务。我认为管道是正确的方式,但我不知道我能做到这一点 管道是命令行shell功能 当您的服务器收到请求时,它可以向“另一台服务器”创建新请求,并将从传入请求接收到的数据发送到此“另一台服务器” 可能会帮助您做到这一点。如果您收到传入请求,则客户端与您的服务器有TCP连接。你不能把它转发到另一台服务器 您可以做的是返回一个301重定向响应,这将使请求者转而尝试其他服务器 另一种方法是自己从另一台服务器获

我有一个Dart HTTP服务正在运行,如果该服务发布了一个文件,我想通过这个调用传递给另一个服务。我认为管道是正确的方式,但我不知道我能做到这一点

管道是命令行shell功能

当您的服务器收到请求时,它可以向“另一台服务器”创建新请求,并将从传入请求接收到的数据发送到此“另一台服务器”


可能会帮助您做到这一点。

如果您收到传入请求,则客户端与您的服务器有TCP连接。你不能把它转发到另一台服务器

您可以做的是返回一个301重定向响应,这将使请求者转而尝试其他服务器

另一种方法是自己从另一台服务器获取数据,并将其作为对原始请求的响应发送。您可以使用一个流管道来实现这一点

比如:

Future handleRequest(HttpRequest request) {
  return new HttpClient()  // Or reuse an existing client if it happens often
      .getUrl(createOtherServerUrl(request))
      .then((newRequest) => newRequest.close())
      .then((response) => response.pipe(request.response));
}

... “管道”是将流传递给流处理程序的方法,这就是我想要做的。但是没有缓冲区所有本地输入的数据。。。我想通过(管道)将incomming调用直接传递到另一个http服务确保管道是一个非常通用的概念,我假设您从命令行知道它们。Dart中的流有一个
pipe()
函数。如果有传入流和传出流,则可以使用
outgoing.pipe(incoming)
转发数据。您仍然需要创建一个对“另一个服务”的新请求,以便首先获得一个传出流。