如何在dart中通过一个incomming http调用到另一个服务器?

时间:2015-09-27 15:49:30

标签: stream dart pipe backend

我正在运行Dart HTTP服务,如果服务获得了一个文件,我想将此调用传递给另一个服务。我认为管道是正确的方法,但我不知道我能做到这一点吗?!

2 个答案:

答案 0 :(得分:2)

如果您收到了传入请求,则客户端与您的服务器建立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));
}

答案 1 :(得分:0)

管道是一个命令行shell功能。

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

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