强大的http调试工具charles用法详解

2024-08-31 04:18

本文主要是介绍强大的http调试工具charles用法详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Charles是目前最强大的http调试工具,在界面和功能上远强于Fiddler,同时是全平台支持,堪称圣杯级工具,唯一的缺陷是这货是收费的,而且是要¥50美元大洋…当然网上是有破解版的,鄙视下自己,无耻地使用了…放在网盘里,亲可以默默带走,不要留下一片云彩。

破解版传送门。

先安装里面的原版,然后copy charles.jar覆盖到安装目录下的lib目录即可。这是V3.6版,最新版本是V3.8.3,但破解补丁不通用,会导致无法启动。

charles-1

启动后,圣杯的真面目如上图。

Charles有个会话(session,不是指http中的session)的概念,可以理解为浏览器中的tab,这个功能在需要调试多个站点页面时很实用,当你刷新页面的时候,只会在当前session中捕获请求。

(PS:ctrl+N创建个新的session,ctrl+W关闭当前session)

Charles的代理服务器启动就可以使用(会提示给firefox安装插件),如果没有捕获到请求,请清理下浏览器缓存。

界面功能初探

2

工具条包含了Charles的大部分功能:

1

有几个功能比较抽象,后面会详细说明。

右键请求出现菜单,Charles的右键菜单功能比fiddler强大太多了。

3

双击请求进入列表视图,类似fiddler,方便查看和过滤请求。

Charles的过滤查找功能非常赞,很快速:

2013-11-16 16-39-14

请求详情跟fiddler相似,但直观不少:

4

工具视图基本讲解完毕,接下来我们用Charles做点事情。

本地代理和远程代理

Charles的代理服务器端口跟fiddler一样都是8888,即你的本机ip:8888。

2013-11-16 16-58-57

我们的目标将一个压缩文件代理成本地的源码文件。

点击“Map Local”后:

2013-11-16 17-01-33

index-min.js代理成index.js,刷新页面试试。

2013-11-16 17-03-52

代理成功,so easy!

Charles的树状视图比fiddler的列表视图好的地方在于,多次刷新后的请求会被归纳到树里面,更加一目了然,用fiddler的时候,有点强迫症的同学,都要点击clear,有木有…

Charles是支持子目录代理哦,非常实用的功能:(使用通配符*

2013-11-16 17-11-44

本地地址选择个子目录,不需要通配符。

如何判断是否代理成功呢?

这点Charles比fiddler人性化多了。

2013-11-16 17-13-20

校验是否代理成功,最省力的方式是点击工具条上的刷新按钮,刷新单个请求,如果代理成功,Charles会往“Notes”界面打个log,比如Mapped to local file: C:\www\htdocs\gallery\uploader\1.5\build\index-min.js。

去除代理配置

小技巧:所有的配置开关都可以通过工具条上的“工具”设置(倒数第二个按钮)。

去掉代理配置:

2013-11-16 17-34-25

小技巧:建议开启No Caching,不缓存请求。

mobile代理功能

手机或平板页面的调试,我们需要把请求代理到pc端的Charles上。

必须确保mobile端和pc端连的是相同的无线网络。

ios的配置非常简单

T1SvWVFn0kXXb1o7go-320-416

(上图借用我同事自寒的截图)

服务器ip设置成pc的ip,端口好设置成8888即可。

然后mobile终端可以刷新试试。

安卓机器的代理

首先,安卓机器必须有root权限,其次需要借助app才行,在安卓的任意市场搜索 ProxyDroid,灰常好用的代理app。
2013-11-18 17-54-41

有些浏览器是自带了代理配置功能,比如opera mobile,输入opera:config ,不过我试了下没代理成功,不知道是不是手机问题。

wp8的代理设置也很简单,手机连接wifi 并进行设置下 设置–WiFi–长按连接好的WIFI–弹出编辑选项。

试试远程代理

2013-11-16 17-39-24

代理配置

2013-11-16 17-26-43

2013-11-16 17-27-23

Charles支持https和sockets的代理,还支持SSL,非常全面。

网速模拟功能

throttle功能对于前端来说非常实用,可以看页面在低网速下的表现,从而找出优化的点。

在线上环境通常有些因为网速慢导致的bug,在本机无法重现,那时候就很抓瞎,如果嫌远程麻烦,推荐使用throttle。

首先先配置下throttle。

2013-11-17 8-19-04

我们要看页面在3G环境下的表现:

2013-11-17 8-21-20

(Charles的预配置对于中国的网络环境并不准确,电信、移动、网通的速度还有有明显差异。)

解析下图上几个配置的含义:

Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(字节)(MTU的说明请看百度百科)。

牛逼的断点功能

Charles另一个非常实用的功能,对于开发者和测试人员来说,堪称神器。Charles能够断到发送请求前(篡改Request)和请求后(篡改Response)。

场景:ajax发送请求,我们需要测试接口的各种边界情况,比如出错、超时等表现,Charles的断点+随意篡改,非常方便测试。

2013-11-17 8-43-05

upload.php是我们要测试的上传接口,右键选择“BreakPoints”,开启断点。

小技巧:不用在web界面中操作,使用repeat功能,就可再次发送一样的请求:

2013-11-17 8-46-27

断点列表查看

2013-11-17 14-49-35

2013-11-17 14-51-13

可以指定断点“get”请求还是“post”请求。

重复发送请求

repeat功能对于测试同学特别有用,可以检验接口的健壮性。

repeat功对于前端的价值是不需要刷新页面,只需要repeat请求,比如检验代理是否成功,修改请求后执行等。

2013-11-17 15-00-13

“repeat”重复发送一次请求。

“repeat Advances”可以自定义重复次数和重复间隔。

2013-11-17 15-01-59

捕获记录控制

捕获的请求太多,容易产生干扰,Charles可以对捕获记录进行过滤。

2013-11-17 15-07-03

然后配置“exclude”:

2013-11-17 15-10-54

web界面

Charles有个有趣的web界面:

2013-11-16 16-52-03

2013-11-16 16-53-08

强大的是可以控制是否远程可以访问这个界面,还可以设置用户名和密码…碉堡了…

浏览器输入http://control.charles/ 

2013-11-16 16-55-45

Charles还有其他有趣功能等待大家挖掘,由于用的比较少,这里就不再累述。

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(44618) | 评论(0) | 转发(3) |
0

上一篇:Web开发人员需知的Web缓存知识

下一篇:Django中ajax的使用

相关热门文章
  • c++ virtual析构函数详解...
  • Oracle:replace和translate函...
  • 关于ORACLE COMMIT操作的详解...
  • 使用RoboCopy 命令
  • Linux逻辑卷详解总结
  • ASP使用内置对象前不必创建...
  • bootStrap中Tab页签切换
  • 京东SSO单点登陆实现分析...
  • WebRTC学习笔记
  • 强大的http调试工具charles用...
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议

这篇关于强大的http调试工具charles用法详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122865

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP