使用 Charles 调试 Flutter 应用中的 Dio 网络请求

devtools/2025/1/16 18:46:02/

为了成功使用 Charles 抓取并调试 Flutter 应用程序通过 Dio 发起的网络请求,需遵循特定配置步骤来确保应用程序能够识别 Charles 的 SSL 证书,并正确设置代理服务器。
在这里插入图片描述

配置 Charles 以支持 HTTPS 请求捕获

Charles 默认会拦截 HTTP 流量;对于 HTTPS,则需要额外启用 SSL 代理功能。进入 Proxy -> SSL Proxying Settings, 添加目标域名或 IP 地址到列表中以便允许这些地址下的流量被解密查看。

安装 Charles CA 证书至 Android 或 iOS 设备

为了让移动设备信任来自 Charles 的加密连接,在手机浏览器访问 chls.pro/ssl 下载安装根证书文件。这一步骤至关重要因为只有当客户端认可该中间件签发者身份之后才会同意其介入通信过程之中。

设置 Dio 进行手动代理转发

在 Dart 中操作 HttpClient 对象时可以通过修改默认构造函数内的 findProxy 属性指定自定义规则实现对不同 URL 实施差异化的路由策略。具体来说就是告诉 dio 将所有的外部访问都重定向给本地运行着 charles 的机器处理:

import 'package:dio/dio.dart';void main() async {var dio = Dio(BaseOptions(proxyHeaders: false,findProxy: (url) => "PROXY localhost:8888", // 替换成实际电脑IP和端口));try {Response response = await dio.get('https://example.com/api');print(response.data);} catch (e) {print(e.toString());}
}

以上代码片段展示了如何让 dio 使用 Charles 所监听的代理服务来进行 API 调用。注意这里的 "localhost" 可能要替换为开发者 PC 的局域网 IP 地址,而不仅仅是本机回环地址,尤其是在真机测试而非模拟器环境下工作时。


http://www.ppmy.cn/devtools/151025.html

相关文章

解决HTTP POST请求Nginx静态内容405错误

个人博客地址&#xff1a;解决HTTP POST请求Nginx静态内容405错误 | 一张假钞的真实世界 Nginx是不支持POST请求静态内容的&#xff0c;通过POST请求时出现以下错误&#xff1a; # curl -d "ab" "http://192.16.36.15:11013/upgrade" <html> <h…

Windows下安装和配置Go开发环境

文章目录 1. 介绍了SDK2. 下载 SDK工具包3. windows 下配置 Golang 环境变量 1. 介绍了SDK SDK 的全称(Software Development Kit 软件开发工具包)SDK是提供给开发人员使用的&#xff0c;其中包含了对应开发语言的工具包 2. 下载 SDK工具包 Go语言的官网为&#xff1a;https…

Android中下载 HAXM 报错 HAXM installation failed,如何解决?

AMD芯片的电脑在 Android Studio 中安装 Virtual Device 时&#xff0c;经常会出现一个 问题 Intel HAXM installation failed. To install Intel HAXM follow the instructions found at: https://github.com/intel/haxm/wiki/Installation-Instructions-on-Windows 一直提示H…

2025.1.15——三、报错注入

一、基本操作&#xff1a;整理已知信息&#xff0c;本题为报错注入&#xff0c;需进一步确认回显方式 二、用updatexml()解题步骤 step 1&#xff1a;依据回显方式判断题目类型 键入&#xff1a;1、1 and 11 、id2-1 得到&#xff1a;查询正确的回显 键入&#xff1a;1’、…

解决 Mac 系统上的 node-sass 问题

解决 Mac 系统&#xff08;尤其是 M1/M2&#xff09;上的 node-sass 问题 问题描述 在 Mac 系统上使用 node-sass 时&#xff0c;经常会遇到以下错误&#xff1a; Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime (108)或者…

WPF-01理解XAML

文章目录 基础xmles 声明命名空间命名元素NameForegroundBackground标记扩展附加属性特殊符号空白保留事件datatimepadding加载和编译XMAL基础 xmles 声明命名空间 命名元素 Name system.windows.controls.Grid Foreground 前端背景 Foreground="White"或者For…

MR30分布式IO:贴标机产线的高效扩展与控制新纪元

在智能制造的浪潮中&#xff0c;贴标机作为自动化生产线上不可或缺的一环&#xff0c;其性能与效率直接关系到产品包装的质量与生产效率。 随着市场需求的日益多样化与规模化&#xff0c;传统集中式IO控制方式逐渐暴露出扩展性差、维护成本高、响应速度慢等问题&#xff0c;难…

【Docker】入门教程

目录 一、Docker的安装 二、Docker的命令 Docker命令实验 1.下载镜像 2.启动容器 3.修改页面 4.保存镜像 5.分享社区 三、Docker存储 1.目录挂载 2.卷映射 四、Docker网络 1.容器间相互访问 2.Redis主从同步集群 3.启动MySQL 五、Docker Compose 1.命令式安装 …