handleIoRequest function
Future<void>
handleIoRequest(
- HttpsServer server,
- HttpRequest request, {
- Duration requestTimeout = defaultRequestTimeout,
Answer one dart:io request with server — for an application that owns
its own HttpServer and routes only some paths here.
Implementation
Future<void> handleIoRequest(
HttpsServer server,
HttpRequest request, {
Duration requestTimeout = defaultRequestTimeout,
}) async {
final response = request.response;
try {
final reply = await _answer(server, request).timeout(requestTimeout);
response.statusCode = reply.status;
reply.headers.forEach(response.headers.set);
final body = reply.body;
if (body != null) response.add(body);
} on TimeoutException {
response.statusCode = HttpStatus.requestTimeout;
} on Object {
response.statusCode = HttpStatus.internalServerError;
}
try {
await response.close();
} on Object {
// The peer went away; there is nobody left to tell.
}
}