logNetworkRequest method

void logNetworkRequest(
  1. DateTime startTime,
  2. Response response,
  3. dynamic body
)

Implementation

void logNetworkRequest(
    DateTime startTime, http.Response response, dynamic body) {
  http.Request? request = response.request as http.Request?;
  if (request == null) {
    return;
  }

  NetworkRequest networkRequest = NetworkRequest();
  networkRequest.startTime = startTime;
  networkRequest.endTime = DateTime.now();
  networkRequest.duration = _findDuration(networkRequest);
  networkRequest.url = request.url.toString();
  networkRequest.method = request.method;
  networkRequest.status = response.statusCode.toString();
  networkRequest.requestBody = _removeBinaryData(body?.toString());
  networkRequest.responseBody = _removeBinaryData(response.body);
  request.headers.forEach((header, value) {
    networkRequest.requestHeaders[header] = value;
  });
  response.headers.forEach((header, value) {
    networkRequest.responseHeaders[header] = value;
  });

  Shake.insertNetworkRequest(networkRequest);
}