当前位置: 首页 > news >正文

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

为了成功使用 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.lryc.cn/news/521728.html

相关文章:

  • CMD批处理命令入门(6)——常用的特殊字符
  • 【跟着官网学技术系列之MySQL】第7天之创建和使用数据库1
  • next-auth v5 结合 Prisma 实现登录与会话管理
  • WPS excel使用宏编辑器合并 Sheet工作表
  • (即插即用模块-Attention部分) 四十四、(ICIP 2022) HWA 半小波注意力
  • Linux第二课:LinuxC高级 学习记录day04
  • occ的开发框架
  • Redis 如何解决大 key 问题
  • 驱动开发系列33 - Linux Graphics mesa Intel驱动介绍
  • 【华为OD-E卷 - 整数编码 100分(python、java、c++、js、c)】
  • vue3 uniapp封装一个瀑布流组件
  • Android Room 持久化库的介绍及使用方法
  • Go语言中http.Transport的Keep-Alive配置与性能优化方法
  • 设计模式03:行为型设计模式之策略模式的使用情景及其基础Demo
  • C# 多线程 Task TPL任务并行
  • 【matlab】matlab知识点及HTTP、TCP通信
  • kalilinux - msf和永恒之蓝漏洞
  • 网络安全测评质量管理与标准解读
  • Cesium根据地图的缩放zoom实现不同级别下geojson行政边界的对应展示
  • Linux初识:【shell命令以及运行原理】【Linux权限的概念与权限管理】
  • 深入剖析 Wireshark:网络协议分析的得力工具
  • 【AIGC】SYNCAMMASTER:多视角多像机的视频生成
  • PyTorch框架——基于深度学习YOLOv5神经网络水果蔬菜检测识别系统
  • Redisson中红锁(RedLock)的实现
  • 小结:路由器和交换机的指令对比
  • 使用yarn命令创建Vue3项目
  • Three.js+Vue3+Vite应用lil-GUI调试开发3D效果(三)
  • K8S集群常用命令
  • 【优先算法】滑动窗口--(结合例题讲解解题思路)(C++)
  • mayavi -> python 3D可视化工具Mayavi的安装