From b9d42092c2be16f3afd174cccc55cb5c27a017a6 Mon Sep 17 00:00:00 2001 From: wanghongenpin <178070584@qq.com> Date: Fri, 20 Oct 2023 14:58:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=B7=E6=B1=82=E9=87=8D?= =?UTF-8?q?=E5=86=99=E7=BC=96=E8=BE=91=E4=B8=AD=E6=96=87=E4=B9=B1=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/network/util/script_manager.dart | 6 +----- lib/ui/desktop/left/request_editor.dart | 3 ++- lib/ui/mobile/connect_remote.dart | 3 ++- lib/ui/mobile/request/request_editor.dart | 4 +++- pubspec.lock | 10 +++++----- test/tests.dart | 3 +-- 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/lib/network/util/script_manager.dart b/lib/network/util/script_manager.dart index 3e7636d..b57784d 100644 --- a/lib/network/util/script_manager.dart +++ b/lib/network/util/script_manager.dart @@ -199,17 +199,13 @@ async function onResponse(context, request, response) { /// js结果转换 static Future jsResultResolve(JsEvalResult jsResult) async { - if (jsResult.isPromise) { + if (jsResult.isPromise || jsResult.rawResult is Future) { jsResult = await flutterJs.handlePromise(jsResult); } var result = jsResult.rawResult; if (Platform.isMacOS || Platform.isIOS) { result = flutterJs.convertValue(jsResult); } - if (result is Future) { - flutterJs.executePendingJob(); - result = await (jsResult.rawResult as Future); - } if (result is String) { result = jsonDecode(result); } diff --git a/lib/ui/desktop/left/request_editor.dart b/lib/ui/desktop/left/request_editor.dart index 90730df..7005e36 100644 --- a/lib/ui/desktop/left/request_editor.dart +++ b/lib/ui/desktop/left/request_editor.dart @@ -14,6 +14,7 @@ * limitations under the License. */ +import 'dart:convert'; import 'dart:io'; import 'package:desktop_multi_window/desktop_multi_window.dart'; @@ -128,7 +129,7 @@ class RequestEditorState extends State { HttpRequest request = HttpRequest(HttpMethod.valueOf(currentState.requestMethod), currentState.requestUrl); request.headers.addAll(headers); - request.body = requestBody?.codeUnits; + request.body = requestBody == null ? null : utf8.encode(requestBody); HttpClients.proxyRequest(request).then((response) { FlutterToastr.show('请求成功', context); diff --git a/lib/ui/mobile/connect_remote.dart b/lib/ui/mobile/connect_remote.dart index 0f8a696..4e74116 100644 --- a/lib/ui/mobile/connect_remote.dart +++ b/lib/ui/mobile/connect_remote.dart @@ -173,7 +173,8 @@ class ConfigSyncState extends State { if (syncScript) { await ScriptManager.instance.then((script) async { script.list.clear(); - widget.config['scripts'].forEach((it) => script.addScript(ScriptItem.fromJson(it), it['script'])); + await widget.config['scripts'] + .forEach((it) async => await script.addScript(ScriptItem.fromJson(it), it['script'])); await script.flushConfig(); }); } diff --git a/lib/ui/mobile/request/request_editor.dart b/lib/ui/mobile/request/request_editor.dart index 62e38d9..0dfeedc 100644 --- a/lib/ui/mobile/request/request_editor.dart +++ b/lib/ui/mobile/request/request_editor.dart @@ -1,3 +1,5 @@ +import 'dart:convert'; + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_toastr/flutter_toastr.dart'; @@ -123,7 +125,7 @@ class RequestEditorState extends State with SingleTickerPro HttpRequest request = HttpRequest(HttpMethod.valueOf(currentState.requestMethod), currentState.requestUrl); request.headers.addAll(headers); - request.body = requestBody?.codeUnits; + request.body = requestBody == null ? null : utf8.encode(requestBody); var proxyInfo = widget.proxyServer?.isRunning == true ? ProxyInfo.of("127.0.0.1", widget.proxyServer!.port) : null; HttpClients.proxyRequest(proxyInfo: proxyInfo, request).then((response) { diff --git a/pubspec.lock b/pubspec.lock index 62f023c..34f2678 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -405,10 +405,10 @@ packages: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.flutter-io.cn" source: hosted - version: "1.9.1" + version: "1.10.0" mime: dependency: transitive description: @@ -730,10 +730,10 @@ packages: dependency: transitive description: name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + sha256: "14f1f70c51119012600c5f1f60ca68efda5a9b6077748163c6af2893ec5df8fc" url: "https://pub.flutter-io.cn" source: hosted - version: "0.1.4-beta" + version: "0.2.1-beta" win32: dependency: transitive description: @@ -759,5 +759,5 @@ packages: source: hosted version: "1.0.3" sdks: - dart: ">=3.1.0 <4.0.0" + dart: ">=3.2.0-157.0.dev <4.0.0" flutter: ">=3.13.0" diff --git a/test/tests.dart b/test/tests.dart index 739c0d3..6cdf6a1 100644 --- a/test/tests.dart +++ b/test/tests.dart @@ -1,11 +1,10 @@ import 'dart:io'; void main() { + print(RegExp('http://dddd/hello\$').hasMatch("http://dddd/hello/world")); print(Platform.version); print(Platform.localHostname); print(Platform.operatingSystem); print(Platform.localeName); print(Platform.script); - print(Platform.environment); - print(Platform.packageConfig); }