Держите поток HttpRequest открытым, пока я выдаю Client.post

#dart #dart-html

#dart #dart-html

Вопрос:

На моем сервере dart есть функция, которая получает POST-запрос от клиента. Я хочу использовать информацию из этого запроса для отправки POST на другой сервер, а затем использовать ответ от этого другого сервера для отправки ответа обратно на исходный запрос клиента. Когда я отправляю свой POST на другой сервер, он закрывает поток по входящему запросу клиента, и я больше не могу отвечать. Есть ли способ сохранить поток запросов «живым», пока я делаю 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();

}
 

Ответ №1:

Я не await редактировал client.post…. Мне нужно лучше следить за этим.