charles使用指南

news2024/12/22 13:21:57

一、什么是charles

Charles 是一个http代理、管理以及反向代理工具,它允许开发者查看本地机器和互联网之间的关于http、https的所有通信,包含请求、响应以及他们的请求头、响应头。

它的主要功能包含:

1、SSL代理

2、带宽限制

3、ajax断点调试

4、自动配置浏览器和系统代理

二、为什么使用charles,它和nginx有啥区别

nginx主要用作反向代理,仅用于代理localhost,其本质是本地再起了一个服务,用以代理。如代理localhost:8080,代理的服务或资源也全部需要以localhost:8080作为前缀地址。

charles则不然,它可以看做是一个过滤器,所有的请求,不管是浏览器请求到本地静态资源、本地服务还是远程资源,全部都可以拦截并做相应的处理,如添加请求头、响应头,修改响应数据等。

三、charles的使用

1、请求的拦截和手动处理

        1.1、选择需要调试的接口,右键->勾选Breakpoints

        1.2、proxy->breakPoint Setting

        1.3、选择对应的方法,将里面的Query填上*

        1.4、重新请求接口,会自动跳转到断点处,第一次修改请求数据,然后Excute(如果不修改请求数据,可直接点Excute),第二次修改响应数据,然后Excute

修改地址栏参数

修改请求头

第一次点击Execute后

响应数据修改前

响应数据修改后:

2、自动拦截

很多时候,我们的接口都需要批量拦截到本地,这个时候,就不能一条一条去设置拦截了,需要用到Map Remote、Map Local以及Rewrite工具了

2.1、自动单个拦截

2.1.1、Map Remote

顾名思义,就是映射到远程,这个远程,我的理解是非静态文件就是远程。比如本地启的一个服务就是远程,线上服务地址以及线上资源都是远程。

2.1.2、Map Local

拦截本地服务到本地静态资源

拦截线上服务到本地静态资源

2.2、批量自动拦截-Rewrite

2.2.1、首先添加一个拦截规则

2.2.2、再添加要做的处理

这里的处理有很多,包括修改路径、添加/修改/移除请求头、添加/修改/移除响应头、添加/修改/移除查询参数以及修改响应状态等

2.2.3、示例
1、修改地址URL

批量代理本地接口( 以/portal/CNB-DESIGN-WEB-SERVER/CNB-DESIGN/为前缀)到线上接口,记得勾选Regex

2、修改请求头Cookie

注意此处,如果选择Add Header,则会在请求头可能出现两个Cookie,有可能请求不符合自己所想

四、问题

1、charles无法抓取localhost数据包

我们有时候在本地调试的时候,使用charles抓取向本地服务发送的请求的,发现无法抓取。

charles官方也作了相应说明:大概意思就是 某些系统使用的是硬编码不能使用localhost进行传输,所以当我们连接到 localhost的时候,不能被charles 抓取

解决方法:

使用 http://localhost.charlesproxy.com/ (charles启动后 localhost.charlesproxy.com 默认会指向127.0.0.1)代替 http://localhost/

2、charles无法抓取https数据

proxy->ssl添加拦截

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1403559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何查看Linux CPU占有率

目录 1、top 2、htop 3、vmstat 4、mpstat 5、iostat 查看嵌入式设备CPU占有率是评估系统资源使用情况的重要方式。 在Linux系统中,有多种方法可以查看CPU占有率,这里介绍几种常用的命令行工具。 1、top 这是最常用的命令之一,它提供了…

go语言(十三)-----interface

一、Interface 通用万能类型 空接口int,string,float,struct都实现了interface都可以用interface{}类型,引用任意的数据类型 package mainimport "fmt"//interface()是万能数据类型 func myFunc(arg interface{}) {fmt.Println(&…

[娱乐]索尼电视安装Kodi

索尼电视不能直接apk安装kodi应用 android studio安装后附带 abd, 路径 C:\Users\[yourname]\AppuoData\Local\Android\Sdk\platform-tools\adb.exe安卓电视点击内部版本号,启用开发者模式 adb 连接索尼安卓电视,记得电视上运行调试 abi选…

函数传参数组时,使用数组形参的本质

c语言中函数的调用分为两种方式:传址调用、传值调用。 传值调用我们都知道就是将实参的值传送给被调函数,让被调函数的形参接收这个值,从而形参内存中的数据就变成了实参的一份拷贝。 而传址调用则是将实参的地址传送过去,然后令…

IaC基础设施即代码:Terraform 创建 docker 网络与容器资源

目录 一、实验 1.环境 2.Terraform查看版本 3.Linux主机安装Docker 4.Terraform使用本地编译(In-house)的Providers 5.Docker-CE 开启远程API 6. Linux主机拉取镜像 7.Terraform 创建docker 网络资源 8.Terraform 创建docker 容器资源 一、实验 …

8.3 Springboot整合Redis 之Jedis方式

文章目录 前言一、Maven依赖二、新增子Module:tg-book-redis三、Jedis配置类3.1 Jedis连接池核心配置说明四、Jedis 工具类五、新增controller测试前言 Jedis是Redis官方推荐的Java客户端连接工具,用法非常简单,Jedis的API与Redis的API可以说是一模一样,所以非常有利于熟悉…

【K8S 云原生】K8S的包包管理器-helm

目录 一、helm概念 1、什么是helm 2、helm的概念: 二、实验部署: 1、安装helm: 2、对chart仓库的基本使用: 2.1、查看和更新chart仓库 2.2、安装chart 2.3、卸载chart: 3、helm自定义模版: 3.1、…

未来趋势:视频美颜SDK与增强现实(AR)的融合

当下,视频美颜SDK不断演化,成为用户记录和分享生活时不可或缺的一部分。同时,增强现实技术也以其独特的沉浸感和交互性受到青睐,被广泛应用于游戏、教育、医疗等领域。 一、视频美颜与AR的结合 1.实时美颜的AR增值体验 借助AR的…

【Springboot】日志

1.日志的使用 日志主要用于记录程序运行的情况。我们从学习javase的时候就使用System.out.println();打印日志了,通过打印的日志来发现和定位问题,或根据日志来分析程序运行的过程。在Spring的学习中,也经常根据控制台的⽇志来分析和定位问题 。 日志除…

《WebKit 技术内幕》学习之七(1): 渲染基础

《WebKit 技术内幕》之七(1): 渲染基础 WebKit的布局计算使用 RenderObject 树并保存计算结果到 RenderObject 树。 RenderObject 树同其他树(如 RenderLayer 树等),构成了 WebKit 渲染的为要基础设施。 1…

w23靶场安装

一、实验环境 服务器:phpstudyv8.1.13 靶场:Bees二、实验目的 提供一个靶场环境 三、实验步骤 bees靶场安装 1.启动小皮的apache和mysql 2.在小皮V8.1.1.3版本上创建bees网站,选择的php版本最好在5.x,不然会有php解析错误。…

Windows系统如何修改Nginx配置实现远程访问多个本地站点

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…

samba服务搭建,并将共享目录映射到windows

系统版本:centos7 1、centos 安装samba yum -y install samba 2、查看安装信息 rpm -qa |grep samba 3、设置开机自启动 systemctl enable smb.service systemctl enable nmb.service 4、设置samba服务器配置文件 sudo vi /etc/samba/smb.conf 注意&#…

mysql进阶-执行计划

目录 1. 概念 2. 使用 3. 具体相关字段含义 3.1 id 3.2 select_type 3.3 table 3.4 partition 3.5 type 3.6 possible_key 3.7 key 3.8 key_len 3.9 ref 3.10 row 3.11 filtered 3.12 extra 1. 概念 一条语句通过优化器之后,会生成具体的执行计划用…

qt-c++多窗口编程

1、QMessageBox 消息对话框 QMessageBox继承自QDialog,显示一个模态对话框。用于用户前台信息通知或询问用户问题,并且接收问题答案。 QDialog再Qt源码中,派生类往往都是一些在特定场合下使用的预设好的对话框窗口。这些窗口无需创建对象&…

PaddleDetection学习3——使用Paddle-Lite在 Android 上部署PicoDet模型(fp16)

使用Paddle-Lite在 Android 上运行PicoDet模型(fp16) 1. 环境准备2. 部署步骤2.1 下载Paddle-Lite-Demo2.2 打开 picodet_detection_demo项目2.2.1 修改build.gradle,配置国内镜像仓库2.2.2 NDK 配置错误问题2.2.3 gradle.properties文件配置…

PaddleOCR实现对表格的提取

1、背景 PaddleOCR: 基于飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测、文本识别的训练算法。对pdf/word里的表格中识别出有效信息具有重要意义,比如…

OpenSource - 文件在线预览模块(多格式转 PDF 文件)

文章目录 文件在线预览模块(多格式转PDF文件)现已支持格式如下界面展示运行方式接口介绍文件上传文件转 PDF文件转图片文件转SVG 参数配置其他说明项目关联关键词文档转换预览技术说明同步转换异步转换 主要技术乱码问题处理帮助文档 前端预览弹出层用法…

uniapp开发小程序如何获取用户地理位置

1、需求说明 需求&#xff1a;点击按钮获取当前微信位置&#xff0c;以及点击拒绝授权后&#xff0c;下次点击还可以拉起授权窗口&#xff1b; 2、言归正传 1、编写代码 模板部分 <template><view><button type"" click"getLocation"&…

hugo的常规使用操作

hugo的常规使用操作&#xff08;不断完善中&#xff09; 找到theme主题中config.toml 一般都会通过theme中复制到自己项目的config.toml中做修改和补充&#xff0c;来完善不同的业务需求 Hugo静态资源载入逻辑 原理 将图片信息放到static中&#xff0c;但是在文章中写的时…