Flutter_学习记录_iOS 模拟器用Charles抓包

news/2025/2/25 8:32:34

参考文章:
Flutter 使用Charles软件抓包

1. 前言

Flutter应用网络请求调试一直是业内难题,原因在于Dart语言标准库的网络请求不会走Wi-Fi代理,常规通过配置Wi-Fi代理来抓包的方式行不通。这给我们日常开发测试造成了很大的阻碍,严重降低工作效率。

2. 抓包解决方案

2.1 安装抓包工具Charles

请参考这个文章:charlse抓包和Mock数据

2.2 模拟器设置代理

首先,设置Charles允许抓包电脑数据,如下图设置:
在这里插入图片描述
其次,安装模拟器证书,如下图:
在这里插入图片描述
第三,打开模拟器的safari, 输入http://chls.pro/ssl, 安装证书,然后在模拟器的设置->通用->关于本机->证书信任设置,打开Charles的证书信任:
在这里插入图片描述

2.3 代码设置代理

通过如下步骤,查看本地网络的代理端口:
在这里插入图片描述
记住这个数据:
在这里插入图片描述
在代码中配置网络转发的端口, 我是在第一次网络请求的页面中配置的,代码如下:

import 'package:flutter/material.dart';
// 网络请求
import 'package:dio/dio.dart';
import 'package:dio/io.dart';

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {

  final dio = Dio();
  
  
  void initState() {
    super.initState();

    // TODO: --设置代理的地方,等待删除
     (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) { 
          client.findProxy = (uri) {
            return 'PROXY 192.168.1.4:8888';
          };
     };
    // 获取轮播图的数据
    _getSwipterDataRequest();
    // 获取猜你喜欢的数据
    _getGuessYouLikeDataRequest();
  }
}

2.4代码解读

其中发挥作用的是,这几句代码:

final dio = Dio();
    // TODO: --设置代理的地方,等待删除
     (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) { 
          client.findProxy = (uri) {
            return 'PROXY 192.168.1.4:8888';
          };
     };

其中192.168.1.4:8888 这个值是步骤2.3 让记住的端口, 同时也说明了:再次启动charles时,如果charles的端口变了,代码的设置的'PROXY 192.168.1.4:8888'这个值也要跟着变。

大概得设置就是这样~


http://www.niftyadmin.cn/n/5865260.html

相关文章

爱迪斯通虚拟针灸教学系统入选ARinChina2024 XR行业年度荣誉榜医疗榜单

爱迪斯通推出的“XR虚拟针灸教学项目”成功入选 ARinChina 2024 XR行业年度荣誉榜-XR行业创新应用榜单&#xff08;医疗领域&#xff09;。 入选榜单&#xff1a;XR行业创新应用榜单&#xff08;医疗&#xff09; 入选产品&#xff1a;虚拟针灸教学系统 XR虚拟针灸教学系统&am…

云计算及其他计算

云计算知识思维导图&#xff1a;https://kdocs.cn/l/cpl2Kizx7IyC 云计算的核心判断标准通常基于美国国家标准与技术研究院&#xff08;NIST&#xff09;的定义&#xff0c;并结合实际应用场景。以下是判断一个服务是否为云计算的关键标准&#xff0c;以及对应的服务类型&#…

python实现基于深度学习实现遮挡人脸识别系统的详细方案

以下是一个基于深度学习实现遮挡人脸识别系统的详细方案&#xff0c;使用 Python 语言完成。 方案概述 该遮挡人脸识别系统主要包含数据准备、模型构建、模型训练、模型评估和系统部署几个主要步骤。我们将使用深度学习框架 TensorFlow 和 Keras 来构建和训练卷积神经网络&am…

【Vscode 使用】集合1

一、使用make工具管理工程 windows下&#xff0c;下载mingw64&#xff0c;配置好mingw64\bin 为 Win10系统全局变量后。 在mingw64/bin目录下找到mingw32-make.exe工具。复制一份改名为&#xff1a;make.exe&#xff0c;没错&#xff0c;就是那么简单&#xff0c;mingw64自带m…

2020年蓝桥杯Java B组第二场题目+部分个人解析

#A&#xff1a;门牌制作 624 解一&#xff1a; public static void main(String[] args) {int count0;for(int i1;i<2020;i) {int ni;while(n>0) {if(n%102) {count;}n/10;}}System.out.println(count);} 解二&#xff1a; public static void main(String[] args) {…

前端Sass面试题及参考答案

目录 什么是 Sass? Sass 和 CSS 的主要区别是什么? Sass 中如何处理列表? Sass 中如何处理映射(map)? Sass 中如何使用函数? Sass 中如何使用内置函数? Sass 中如何设置默认值? Sass 中的 @function 和 @mixin 有什么区别? Sass 中如何实现模块化? Sass 中…

Mac中的oss上传

1️⃣Mac终端中输入&#xff1a; sudo mkdir -p /usr/local/bin sudo curl -L -o /usr/local/bin/oss https://gpucloud-static-public-prod.gpushare.com/installation/oss/oss_darwin_x86_64 sudo chmod ux /usr/local/bin/oss2️⃣输入查询oss版本&#xff1a; oss versio…

正则化及其在机器学习中的作用

目录 正则化及其在机器学习中的作用 一、正则化的作用 二、L1 正则化与 L2 正则化的原理 1. L1 正则化 2. L2 正则化 三、L1 与 L2 正则化的比较 四、实际应用中的正则化 五、总结 正则化及其在机器学习中的作用 在机器学习中&#xff0c;模型过拟合一直是我们需要重点…