From cd80843f9a39eaed06c9cab8560561a03001015a Mon Sep 17 00:00:00 2001 From: Xigui Peng Date: Mon, 30 Jun 2025 09:48:29 +0800 Subject: [PATCH] fix: Fixed the problem of inaccurate calculation of response data length on iOS platform --- ios/ExpoHttpServerModule.swift | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/ios/ExpoHttpServerModule.swift b/ios/ExpoHttpServerModule.swift index eec7d9a..9b46ac1 100644 --- a/ios/ExpoHttpServerModule.swift +++ b/ios/ExpoHttpServerModule.swift @@ -65,12 +65,18 @@ public class ExpoHttpServerModule: Module { if let response = self.responses[udid] { response.setStatusCode(UInt(statusCode), description: statusDescription) response.setValue(contentType, forHTTPHeaderField: "Content-type") - response.setValue("\(body.count)", forHTTPHeaderField: "Content-Length") - for (key, value) in headers { - response.setValue(value, forHTTPHeaderField: key) + if let bodyData = body.data(using: .utf8) { + response.setValue("\(bodyData.count)", forHTTPHeaderField: "Content-Length") + for (key, value) in headers {Add commentMore actions + response.setValue(value, forHTTPHeaderField: key) + } + response.send(body) + self.responses[requestId] = nil + } else { + response.setStatusCode(500, description: "Internal Server Error") + response.send("Failed to encode response body") + self.responses[requestId] = nil } - response.send(body); - self.responses[udid] = nil; } }