onRequest method

void onRequest(
  1. HttpClientRequest request, {
  2. dynamic body,
})

Handles httpClientRequest and creates http alice call from it

Implementation

void onRequest(HttpClientRequest request, {dynamic body}) {
  final call = AliceHttpCall(request.hashCode);
  call.loading = true;
  call.client = "HttpClient (io package)";
  call.method = request.method;
  call.uri = request.uri.toString();
  call.endpoint = request.uri.path.isEmpty ? "/" : request.uri.path;
  call.server = request.uri.host;
  call.secure = request.uri.scheme == "https";

  final httpRequest = AliceHttpRequest();
  httpRequest.stackTrace = StackTrace.current;
  if (body == null) {
    httpRequest.size = 0;
    httpRequest.body = "";
  } else {
    httpRequest.size = utf8.encode(body.toString()).length;
    httpRequest.body = body;
  }
  httpRequest.time = DateTime.now();

  final Map<String, dynamic> headers = {};
  request.headers.forEach((header, values) {
    headers[header] = values.join(', ');
  });
  httpRequest.headers = headers;
  httpRequest.contentType = AliceParser.getContentType(headers);
  httpRequest.cookies = request.cookies;

  call.request = httpRequest;
  call.response = AliceHttpResponse();
  aliceCore.addCall(call);
}