calcRequestSizeBytes static method
Calculation the bytes of a request depending on the request options.
Implementation
static int calcRequestSizeBytes(
  BaseRequest request,
  Map<String, String> additionalRequestHeaders,
) {
  // 4 Bytes coming from empty line after first line and headers
  var requestLength = 4;
  try {
    requestLength += calcRequestFirstLineLength(
      request.method,
      request.url.path,
      request.url.query,
    );
    // Combining additional headers and request headers. Actual headers go second, so they override the default ones
    requestLength += getHeaderLength({...additionalRequestHeaders, ...request.headers});
    if (request.contentLength != null && request.contentLength! > 0) {
      requestLength += request.contentLength!;
      if (!request.headers.containsKey(DynatraceHttpHeaders.contentTypeHeader)) {
        requestLength += '${DynatraceHttpHeaders.contentTypeHeader}: application/x-www-form-urlencoded'.length + 2;
      }
      if (!request.headers.containsKey(DynatraceHttpHeaders.contentLengthHeader)) {
        requestLength += '${DynatraceHttpHeaders.contentLengthHeader}: ${request.contentLength}'.length + 2;
      }
    }
    if (!request.headers.containsKey('Host')) {
      requestLength += 'Host: ${request.url.authority}'.length + 2;
    }
    return requestLength;
  } catch (error) {
    Logger().d(
      _tag,
      "HttpClientUtils calcRequestSizeBytes(${request.url}): can't calculate request size.",
      logType: LogType.Warning,
    );
    return -1;
  }
}