onRequest method

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

Handles httpClientRequest and creates http Chuck call from it

Implementation

void onRequest(HttpClientRequest request, {dynamic body}) {
  final ChuckHttpCall call = ChuckHttpCall(request.hashCode);
  call.loading = true;
  call.client = "HttpClient (io package)";
  call.method = request.method;
  call.uri = request.uri.toString();

  var path = request.uri.path;
  if (path.isEmpty) {
    path = "/";
  }

  call.endpoint = path;
  call.server = request.uri.host;
  if (request.uri.scheme == "https") {
    call.secure = true;
  }
  final ChuckHttpRequest httpRequest = ChuckHttpRequest();
  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 = <String, dynamic>{};

  httpRequest.headers.forEach((header, dynamic value) {
    headers[header] = value;
  });

  httpRequest.headers = headers;
  String? contentType = "unknown";
  if (headers.containsKey("Content-Type")) {
    contentType = headers["Content-Type"] as String?;
  }

  httpRequest.contentType = contentType;
  httpRequest.cookies = request.cookies;

  call.request = httpRequest;
  call.response = ChuckHttpResponse();
  chuckCore.addCall(call);
}