Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] flutter_ume_kit_dio_plus 解析请求头出错 #126

Open
jixiaoyong opened this issue Jul 18, 2023 · 0 comments
Open

[BUG] flutter_ume_kit_dio_plus 解析请求头出错 #126

jixiaoyong opened this issue Jul 18, 2023 · 0 comments

Comments

@jixiaoyong
Copy link

Steps to Reproduce 复现步骤

这里第 236 行的代码有漏洞,如果 headers 里面的参数值为数字等非 String 的话则会出错。

final Map<String, List<String>> map = _request.headers.map(
(key, value) => MapEntry(
key,
value is Iterable ? value.map((v) => v.toString()).toList() : [value],
),
);

【修改方法】为将 value 转为 String 类型:
value is Iterable ? value.map((v) => v.toString()).toList() : [value.toString()],

  1. dio添加添加参数{"key":1}
  2. 正常进行网络请求
  3. 打开 ume 的 DioInspector 找到刚刚的网络请求,并点击【详情】,页面报错
  4. 查看日志提示:type 'int' is not a subtype of type 'String'

Expected results 期望结果:
预期正常展示网络请求详情
Actual results 实际结果:
实际上请求出错:
image

Error log 错误日志

The following _TypeError was thrown building ValueListenableBuilder<bool>(dirty, state: _ValueListenableBuilderState<bool>#08b6e):
type 'int' is not a subtype of type 'String'

The relevant error-causing widget was: 
  DioInspector DioInspector:file:///Users/username/dev/workspace/work/project_name/lib/main.dart:30:7
When the exception was thrown, this was the stack: 
#0      _ResponseCardState._requestHeadersBuilder.<anonymous closure> (package:flutter_ume_kit_dio_plus/src/widgets/pluggable_state.dart:232:72)<--这里出错
#1      MapBase.map (dart:collection/maps.dart:82:28)
#2      _ResponseCardState._requestHeadersBuilder (package:flutter_ume_kit_dio_plus/src/widgets/pluggable_state.dart:229:60)
#3      _ResponseCardState._detailedContent.<anonymous closure> (package:flutter_ume_kit_dio_plus/src/widgets/pluggable_state.dart:353:26)
#4      _ValueListenableBuilderState.build (package:flutter/src/widgets/value_listenable_builder.dart:186:26)
#5      StatefulElement.build (package:flutter/src/widgets/framework.dart:5198:27)
#6      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5086:15)
#7      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#8      Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#9      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2780:19)
#10     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:903:21)
#11     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:358:5)
#12     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1284:15)
#13     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1214:9)
#14     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1072:5)
#15     _invoke (dart:ui/hooks.dart:142:13)
#16     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:359:5)
#17     _drawFrame (dart:ui/hooks.dart:112:31)

Environmental info 环境信息

Flutter doctor

Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel stable, 3.10.5, on macOS 13.4.1 22F770820d darwin-arm64, locale en-CN)

UME and kits version UME 及插件包版本

  # ume调试工具
  flutter_ume: ^1.1.2
  flutter_ume_kit_ui: ^1.1.0 # 如果报错,可以修改widget_detail_inspector.dart第三行为 import 'package:flutter/material.dart' hide SearchBar;
  flutter_ume_kit_device: ^1.0.0
  flutter_ume_kit_console: ^1.0.0
  flutter_ume_kit_dio_plus: ^2.0.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant