build method

  1. @override
RoundTrip build(
  1. RoundTrip next
)
override

Implementation

@override
RoundTrip build(RoundTrip next) {
  return (request) async {
    if (request.requestBody != null) {
      return await next(request.copyWith(
        headers: {
          ...?request.headers,
          "Content-Type": request.headers?["Content-Type"] ??
              MediaType("application", "octet-stream").toString(),
        },
      ));
    }

    if (request.body == null) {
      return await next(request);
    }

    RequestBodyEncoder encoder = request.body is RequestBodyEncoder
        ? request.body
        : RequestBodyJsonEncoder(request.body!);

    return await next(request.copyWith(
      headers: {
        ...?request.headers,
        "Content-Type": "${encoder.contentType}",
      },
      requestBody: encoder.finalize(),
    ));
  };
}