CharlesIOS:全能编程开发工程师必用的抓包工具

一、什么是CharlesIOS

CharlesIOS是一款Windows、Mac以及IOS平台上的网络抓包和调试工具,被全球范围内的开发者广泛使用。它可以截获移动设备和服务器之间的通信,方便对数据进行监控和调试。

二、CharlesIOS的功能特点

1、HTTP/HTTPS捕获:Charles可以捕获HTTP和HTTPS的请求和响应,甚至可以解密HTTPS报文中的内容,方便我们进行网络调试和分析。

2、Rewrite功能:使用Charles的Rewrite功能可以将服务器返回的内容进行篡改,比如说可以将JSON格式数据以XML的形式返回,方便移动端开发人员进行接口兼容性的测试。

3、Map本地资源:如果本地没有某个资源,可以使用Charles将该资源映射到本地,防止开发测试受到影响。

4、延迟和限速:Charles可以模拟网络延迟和在网络速度变化时的表现,让开发人员更好地进行网络性能测试。

5、Badges功能:Charles支持自定义标记,方便我们对不同的请求进行标记,方便开发人员进行统计分析。

三、基本使用方法

安装好Charles之后,需要进行一些配置才能正常使用。

1、将安装证书: Charles默认会生成一个CA证书,需要将该证书导入到手机或者电脑中,才能截获HTTPS协议的请求。

打开Charles界面 -> Help -> SSL Proxying -> Install Charles Root Certificate

2、开启代理:在手机或电脑的网络设置中开启Charles代理。

设置代理IP地址和端口号

3、检查网络是否被截获:如果网络还没有被截获,可以在Charles的界面中,查看是否有网络请求。

以上就是Charles的基本使用方法,接下来我们可以针对不同的需求,进行一些高级设置。

四、进阶技巧

1、将Charles代理到真机上

当我们需要对真机上的应用进行抓包时,可以通过Charles代理到真机上。

1、打开Charles -> Proxy -> Proxy Settings -> Enable Transparent HTTP Proxying。
2、连接同一WIFI的电脑上在浏览器中打开http://charlesproxy.com/getssl,下载并安装相应证书。
3、找到手机的WIFI设置,手动设置HTTP代理为Charles所在电脑的IP、端口号为8888。
4、打开手机中需要测试的应用,即可看到对应的网络请求和响应。

2、使用Rewrite功能

假设后台接口返回数据中有特殊字符,我们需要将这些特殊字符去掉。

1、打开Charles -> Proxy -> Rewrite Settings -> Add。
2、在弹出的窗口内填写要被替换的正则表达式和要替换成的内容,点击ok即可。

3、修改接口返回数据

假设我们想要在数据返回前添加一些附加信息,比如:对数据进行加密/解密,或是进行签名认证等操作。

1、打开Charles -> Tools -> Map Local。
2、点击添加,填写本地文件路径,一般是json格式文件。
3、找到待拦截的请求,选择 Map Remote,将请求映射到本地的文件。
4、修改本地的json数据,保存即可。

4、使用Charles进行接口Mock测试

如果我们的后端服务尚未开发完成,我们可以使用Charles进行Mock测试。

1、打开Charles -> Tools -> Map Local。
2、点击添加,填写接口地址和Mock数据。
3、找到希望进行Mock测试的接口请求,选择 Map Remote即可。

5、Charles实现限速

我们可以通过Charles来模拟不同网络环境条件,包括网络延迟、抖动等,以便在开发之前进行充分测试。

1、打开Charles -> Proxy -> Throttle Settings。
2、勾选 Enable Throttling,并设置相关参数即可。

五、总结

Charles作为网络抓包和调试工具,具有完善的功能和广泛的应用场景。几乎每一个有网络请求的应用,都可以被Charles所监测到。如果你是一名全能编程开发工程师,那么Charles就是你不可缺少的一款工具。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/297741.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-28 12:16
下一篇 2024-12-28 12:16

相关推荐

  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python中的while true:全能编程开发必知

    对于全能编程开发工程师而言,掌握Python语言是必不可少的技能之一。而在Python中,while true是一种十分重要的语句结构,本文将从多个方面对Python中的while…

    编程 2025-04-29
  • lsw2u1:全能编程开发工程师的利器

    lsw2u1是一款多功能工具,可以为全能编程开发工程师提供便利的支持。本文将从多个方面对lsw2u1做详细阐述,并给出对应代码示例。 一、快速存取代码段 在日常开发中,我们总会使用…

    编程 2025-04-29
  • 7ezmpyh全能编程工程师

    7ezmpyh是一个完全能胜任各种编程任务的全能编程工程师。本文将从多个方面对7ezmpyh进行详细阐述,包括他的编程技能、项目经验和个人特点。 一、编程技能 7ezmpyh拥有广…

    编程 2025-04-29
  • 全能编程开发工程师必备技能——如何优化大整数的计算

    本文将会为你分享如何解决大整数计算问题,以9999999967为例,我们将从多个方面对其做详细阐述,并给出完整的代码示例。 一、大整数的表示方法 在计算机中,我们通常采用二进制数来…

    编程 2025-04-29
  • 如何通过jstack工具列出假死的java进程

    假死的java进程是指在运行过程中出现了某些问题导致进程停止响应,此时无法通过正常的方式关闭或者重启该进程。在这种情况下,我们可以借助jstack工具来获取该进程的进程号和线程号,…

    编程 2025-04-29
  • xkujs全能编程开发工程师

    本文将从以下几个方面详细阐述xkujs作为一名全能编程开发工程师的技术能力和实战经验,为初学者提供学习参考。 一、JavaScript基础 作为一名全能编程开发工程师,JavaSc…

    编程 2025-04-29
  • Spring Cloud Greenwich.Release:全能编程开发工程师的首选

    本文将从以下几个方面对Spring Cloud Greenwich.Release进行详细阐述,包括项目概述、核心组件、应用案例、配置和部署等,旨在为全能编程开发工程师提供更好的解…

    编程 2025-04-29
  • 注册表取证工具有哪些

    注册表取证是数字取证的重要分支,主要是获取计算机系统中的注册表信息,进而分析痕迹,获取重要证据。本文将以注册表取证工具为中心,从多个方面进行详细阐述。 一、注册表取证工具概述 注册…

    编程 2025-04-29
  • 99mav全能编程开发工程师专题

    本文介绍99mav的全能编程开发工程师的各种技能点,以及如何成为一名全能的开发工程师。 一、全面掌握编程技能 一个全能的开发工程师需要全面掌握编程技能,包括但不限于: 熟练掌握多种…

    编程 2025-04-29

发表回复

登录后才能评论