diff --git a/packages/apidash_core/lib/services/http_service.dart b/packages/apidash_core/lib/services/http_service.dart index ad06a21d4..ff8d990ed 100644 --- a/packages/apidash_core/lib/services/http_service.dart +++ b/packages/apidash_core/lib/services/http_service.dart @@ -41,7 +41,22 @@ Future<(HttpResponse?, Duration?, String?)> sendHttpRequest( if (kMethodsWithBody.contains(requestModel.method)) { var requestBody = requestModel.body; if (requestBody != null && !isMultiPartRequest) { - var contentLength = utf8.encode(requestBody).length; + var encodingName = "utf-8"; + if (requestModel.headers != null) { + for (var header in requestModel.headers!) { + if (header.name.toLowerCase() == "content-type") { + final charset = + RegExp(r'charset=([^\s;]+)', caseSensitive: false) + .firstMatch(header.value); + if (charset != null) { + encodingName = charset.group(1)!; + } + break; + } + } + } + final encoding = Encoding.getByName(encodingName); + var contentLength = encoding!.encode(requestBody).length; if (contentLength > 0) { body = requestBody; headers[HttpHeaders.contentLengthHeader] =