From 39f88a83d5fb96d7f477dd4dc89ea08395024cf6 Mon Sep 17 00:00:00 2001 From: Affan Shaikhsurab <51104750+AffanShaikhsurab@users.noreply.github.com> Date: Wed, 12 Mar 2025 14:53:43 +0530 Subject: [PATCH 1/2] Imporved the encoding charset using the Encoding class --- .../apidash_core/lib/services/http_service.dart | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/apidash_core/lib/services/http_service.dart b/packages/apidash_core/lib/services/http_service.dart index ad06a21d4..2cef58469 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) ?? utf8; + var contentLength = encoding.encode(requestBody).length; if (contentLength > 0) { body = requestBody; headers[HttpHeaders.contentLengthHeader] = From a38996bb15be94197ade4b3c364a8db7c58b050c Mon Sep 17 00:00:00 2001 From: Affan Shaikhsurab <51104750+AffanShaikhsurab@users.noreply.github.com> Date: Wed, 12 Mar 2025 15:00:31 +0530 Subject: [PATCH 2/2] Update http_service.dart --- packages/apidash_core/lib/services/http_service.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/apidash_core/lib/services/http_service.dart b/packages/apidash_core/lib/services/http_service.dart index 2cef58469..ff8d990ed 100644 --- a/packages/apidash_core/lib/services/http_service.dart +++ b/packages/apidash_core/lib/services/http_service.dart @@ -55,8 +55,8 @@ Future<(HttpResponse?, Duration?, String?)> sendHttpRequest( } } } - final encoding = Encoding.getByName(encodingName) ?? utf8; - var contentLength = encoding.encode(requestBody).length; + final encoding = Encoding.getByName(encodingName); + var contentLength = encoding!.encode(requestBody).length; if (contentLength > 0) { body = requestBody; headers[HttpHeaders.contentLengthHeader] =