From 70ab93b12c2a5eba0ba4738e60831ba59eda4cbe Mon Sep 17 00:00:00 2001 From: Warn Date: Tue, 16 Sep 2025 18:39:41 +0800 Subject: [PATCH] fix: the situation where the + symbol in the url is not encoded as expected. --- .../utssdk/app-ios/network/NetworkManager.uts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/uni_modules/uni-network/utssdk/app-ios/network/NetworkManager.uts b/uni_modules/uni-network/utssdk/app-ios/network/NetworkManager.uts index 30489ce..ef9c45e 100644 --- a/uni_modules/uni-network/utssdk/app-ios/network/NetworkManager.uts +++ b/uni_modules/uni-network/utssdk/app-ios/network/NetworkManager.uts @@ -61,11 +61,11 @@ class NetworkDownloadFileListener { class NetworkRequestTaskImpl implements RequestTask { public headersReceivedListeners = new Map() public chunkReceivedListeners = new Map() - + private requestTaskOnHeadersReceivedCallbackCount: number = 0 private requestTaskOnChunkReceivedCallbackCount: number = 0 private semaphore = DispatchSemaphore(value = 1) - + private task : URLSessionDataTask | null = null; constructor(task : URLSessionDataTask | null) { this.task = task; @@ -76,7 +76,7 @@ class NetworkRequestTaskImpl implements RequestTask { this.task?.cancel() UTSiOS.destroyInstance(this) } - + public onHeadersReceived(listener: RequestTaskOnHeadersReceivedCallback): number { this.semaphore.wait() this.requestTaskOnHeadersReceivedCallbackCount += 1 @@ -84,7 +84,7 @@ class NetworkRequestTaskImpl implements RequestTask { this.headersReceivedListeners.set(this.requestTaskOnHeadersReceivedCallbackCount, listener) return this.requestTaskOnHeadersReceivedCallbackCount } - + public offHeadersReceived(listener ?: number | RequestTaskOnHeadersReceivedCallback | null): void { if (listener != null && typeof listener! == "number") { const id = listener as number @@ -93,7 +93,7 @@ class NetworkRequestTaskImpl implements RequestTask { this.headersReceivedListeners.clear() } } - + public onChunkReceived(listener: RequestTaskOnChunkReceivedCallback): number { this.semaphore.wait() this.requestTaskOnChunkReceivedCallbackCount += 1 @@ -101,7 +101,7 @@ class NetworkRequestTaskImpl implements RequestTask { this.chunkReceivedListeners.set(this.requestTaskOnChunkReceivedCallbackCount, listener) return this.requestTaskOnChunkReceivedCallbackCount } - + public offChunkReceived(listener ?: number | RequestTaskOnChunkReceivedCallback | null): void { if (listener != null && typeof listener! == "number") { const id = listener as number @@ -246,7 +246,8 @@ class NetworkManager implements URLSessionDataDelegate { map.forEach((value, key) => { bodyArray.push(key + "=" + `${value ?? "null"}`); }) - body = bodyArray.join("&"); + body = bodyArray.join("&"); + url = url.replacingOccurrences(of: "+", with: "%2B"); } else { body = JSON.stringify(data); } @@ -369,7 +370,7 @@ class NetworkManager implements URLSessionDataDelegate { }) } } - + completionHandler(URLSession.ResponseDisposition.allow); }