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] =