抓包

简述

在网络应用如后端系统,app,小程序等的开发过程中,免不了接口可能会报错,但是一般在app中或者小程序中没有便捷的console控制台,而且线上环境也不会开启调试模式,所以想看一下接口的响应就显得比较麻烦,最近,博主就遇到小程序接口报错,想查看却抓不了包详情的问题:(。每次都是找测试同学,但是测试同学也有自己的事情,所以就想着自己抓包。

以前在windows电脑下,用过fidder工具来经常做安全测试,现在用mac电脑,fidder目前也已经支持mac系统了好像,但奈何有点贵,而且还未找到免费的用一哈,所以就换了一个Charles的工具,实战操作了一番,在此记录一下,帮助有需要的人。

环境装备

此处罗列的是个人的配置,其他参考就行

  • mac os 11.1,无线网连接
  • Charles软件安装,版本:4.6.2
  • ios14设备,连接同一无线网

开始

说明:如果只是抓取本机的http请求,那么打开Charles自动配置就可以实现抓取,如果需要抓取https的接口或者抓取手机上的网络请求,参考下面步骤操作

证书安装

Help --> SSL Proxying --> Install Charles Root Certificate



点击上述菜单后会进入到钥匙串里:



如果不是完全信任名称旁边的图标会是红色的。双击charles钥匙串,选择【显示简介】,将信任改为始终信任;如下

SSL代理配置

Proxy --> SSL Proxy Settings





  先勾选Enable SSL Proxying,然后配置抓取路由,Add点击

Host: *

Port: 443

  • 标识所有网址都抓取,443代表Https,当然此处的host可以配置成自己想抓的网站地址前缀只抓取特定网站

至此,电脑端https就可以实现抓取了,可重新抓取试试。

如果想要实现抓取手机上App端或者小程序端的接口怎么办呢?请继续参考下面

开启代理





  勾选Enable transparent HTTP proxying,然后下方的端口port默认为8888,和本机端口不冲突占用就行,我这里填的是8889,记住这个端口号

手机端配置

设置手机代理

设置手机代理需要注意手机与电脑连接的是同一个wifi,保证在同一局域网内即可,查看电脑端的IP地址,mac下进入命令窗口输入ifconfig(或者在设置->网络中查看)

  手机上点击连接上的wifi,找到代理设置,不同手机可能方式不同哈,然后选择手动,就刚刚电脑上的IP填入到此处,charles中配置的端口号填入到这里,存储,代理就配置好了。



恭喜,到这里的话,手机上http请求就可以实现抓取了

手机上安装证书

要想实现手机上的https接口也可以抓取,还需要配置一下。如下,点击 Help --> SSL Proxying --> Install Charles Root Certificate on a Mobile Device or Remote Browser,接着会弹出一个info框,上面指示了手机上需要配置的ip和端口等提示信息。

  手机下载证书,将chls.pro/ssl复制到浏览器中,会提示安装证书,这里安装证书按各自手机型号安装就可以。安装好只好,一定要记得去将证书设置为信任模式,比如ios下,去设置 -> 通用 -> 关于本机 -> 证书信任设置 打开信任

OK,到这里就已经配置完成了,就可以实现在电脑端抓取手机端的http/https接口,下面来看下效果;

问题总结

抓取显示unknow或乱码等问题

出现这个问题的可能原因:

  • 首先检查证书配置是否正确,手机端以及电脑端的;
  • 是否已经信任证书;
  • 电脑端Charles代理的端口是否一致;

    还有其他问题可以参考这里,unknown、乱码问题等

这么一操作,就不用麻烦测试同学了,后续移动端接口的问题,可以自己抓包排查一下啦~

记录Mac下使用Charles抓包的更多相关文章

  1. Mac下使用Charles抓包Android

    原文地址:http://fanjiajia.cn/2018/11/21/Mac%E4%B8%8B%E4%BD%BF%E7%94%A8Charles%E6%8A%93%E5%8C%85Android/ ...

  2. Mac下使用Charles抓包https接口

    1 官方网站下载,安装好Charles https://www.charlesproxy.com/download/ 2 安装ssl证书 3 信任证书 4 手机iPhone配置 ,获取证书url 5 ...

  3. mac 下使用Charles抓包华为手机app

    安装Charles:https://www.cnblogs.com/sea-stream/p/11577418.html 需要保证手机与电脑连接同一个Wi-Fi设置mac charles,打开代理 2 ...

  4. Mac 下安装Fiddler抓包工具

    需求 我们都知道在Mac电脑下面有一个非常好的抓包工具:Charles.但是这个只能抓代理的数据包.但是有时候想要调试本地网卡的数据库 Charles 就没办法了.就想到了在windows下面的一个F ...

  5. MAC下安装Fiddler抓包工具

    需求 我们都知道在Mac电脑下面有一个非常好的抓包工具:Charles.但是这个只能抓代理的数据包.但是有时候想要调试本地网卡的数据库 Charles 就没办法了.就想到了在windows下面的一个F ...

  6. 【这特么是个坑。。。】iOS 10.3下解决Charles抓包ssl证书信任问题

    针对近期iOS 10.3以上的系统charles抓https信任问题 前言 最近iPhone系统更新到ios 10.3后,在公司里用Charles抓包竟然出现了一些问题,https的请求都会失败,提示 ...

  7. Mac 环境 下使用Charles 抓包Http/Https请求

    实现目标 在Mac 上 对 iOS  真机 和 模拟器 进行 Http/Https抓包 使用工具 Mac 上 Charles 4.2  安装 参考链接 1. 和 链接 2. 抓包 http 请求 (1 ...

  8. 【接口工具】mac环境下使用Charles抓包Https请求

    Charles支持针对Https包解析.具体安装导航请参考“[接口工具]接口抓包工具之Charles” 操作流程 电脑安装证书: Help-SSL Proxying-Install Charles R ...

  9. MAC下使用Charles抓取安卓模拟器数据

    一.安装Charles,这个不多记录 二.Charles数据乱码问题(参照这篇文章 http://blog.csdn.net/huanghanqian/article/details/52973651 ...

随机推荐

  1. python基础之读取xml

    python怎么操作xml文件详细介绍链接:https://www.jb51.net/article/50812.htm 从结构上来说,xml很像常见的HTML超文本标记语言.不过超文本语言被设计用来 ...

  2. Qt 入门 ---- 布局管理

    这是运行后的程序界面: 这是点击右上角"最大化"之后的程序界面: 接下来讲一下如何进行自动布局解决窗口拉伸问题. ① 原理: 在项目"设计"模式的左侧有如下两个 ...

  3. jvm源码解读--16 锁_开头

    现在不太清楚, public static void main(String[] args) { Object object=new Object(); System.out.println(&quo ...

  4. spring框架的学习->从零开始学JAVA系列

    目录 Spring框架的学习 框架的概念 框架的使用 Spring框架的引入 概念 作用 内容 SpringIOC的学习 概念 作用 基本使用流程 SpringIOC创建对象的三种方式 通过构造器方式 ...

  5. Prometheus MySQL监控+grafana展示

    前言 最近爱上了研究各种杂七杂八的技术. Prometheus是现如今最火的监控软件之一.做为一个运维DBA,不会这个可就OUT了. 本篇博客,演示一下prometheus之通过mysql expor ...

  6. Android性能优化——性能优化的难题总结

    前言 现在都在谈性能优化或者在面试的时候被问到性能优化相关问题,那么我们为什么要做性能优化呢?以及性能优化的难点是什么?在整个项目周期中不同的阶段该做什么?优化效果如何长期保持?作为一名Android ...

  7. zookeeper查看启动状态报错:Error contacting service. It is probably not running.

    问题描述 我有三台虚拟机master.slave1.slave2.每台虚拟机启动zkServer.sh时都没有报错,然后紧接着查看zkServer.sh的状态,这时候出现了错误:Error conta ...

  8. CircuitBreaker断路器Fallback如何获取异常

    在Spring Cloud 2020新版里, 可以使用新版的 CircuitBreaker 断路器, 可以配置Fallback, 可以是内部的, 也可以是外部的Fallback. 内部 Fallbac ...

  9. Python - typing 模块 —— NewType

    前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...

  10. idea 生成 javaDoc

    idea 生成 javaDoc 使用命令 Generate javaDoc - 直接输入javadoc就可以了 Generate JavaDoc scope 3个区域,一般选择第三项自定义,选择模块, ...