在我发出 Client.post 时保持 HttpRequest 流打开
Keep HttpRequest stream open while I issue a Client.post
我的 dart 服务器具有接收来自客户端的 POST 请求的功能。我想使用该请求中的信息向另一台服务器发出 POST,然后使用该另一台服务器的响应将响应发送回原始客户端请求。当我向另一台服务器发出 POST 时,它关闭了入站客户端请求的流,我无法再响应。有没有办法在我执行 POST 时保持请求流 'alive'?或者,还有另一种方法可以做到这一点吗?我确实尝试在不同的 Isolate 上发出 POST,但这没有帮助,http 请求流仍在关闭。
void postRequest(HttpRequest request) async {
final endPoint = 'https://www.anotherserver.com/information';
final client = Client();
final data = request.headers.value('data'); // Get data from client
final response = client.post(endPoint, body: data); // Send data to other server
// Do stuff with the response from endPoint server
// For simplicity of this example, just send back the response body back to the client
// This write call to the request causes an "Stream Sink Closed" exception
// It appears the POST call to the endPoint server, caused the client request stream
// to get closed.
request.response.write(response.body);
await request.response.flush();
await request.response.close();
}
我不在 await
client.post 中。我需要更好地注意这一点。
我的 dart 服务器具有接收来自客户端的 POST 请求的功能。我想使用该请求中的信息向另一台服务器发出 POST,然后使用该另一台服务器的响应将响应发送回原始客户端请求。当我向另一台服务器发出 POST 时,它关闭了入站客户端请求的流,我无法再响应。有没有办法在我执行 POST 时保持请求流 'alive'?或者,还有另一种方法可以做到这一点吗?我确实尝试在不同的 Isolate 上发出 POST,但这没有帮助,http 请求流仍在关闭。
void postRequest(HttpRequest request) async {
final endPoint = 'https://www.anotherserver.com/information';
final client = Client();
final data = request.headers.value('data'); // Get data from client
final response = client.post(endPoint, body: data); // Send data to other server
// Do stuff with the response from endPoint server
// For simplicity of this example, just send back the response body back to the client
// This write call to the request causes an "Stream Sink Closed" exception
// It appears the POST call to the endPoint server, caused the client request stream
// to get closed.
request.response.write(response.body);
await request.response.flush();
await request.response.close();
}
我不在 await
client.post 中。我需要更好地注意这一点。