我们在进行B/S架构的Web项目开发时,在前端页面与后台交互的调试的时候,通常使用在JSP中加入“debugger;”断点,然后使用浏览器的F12开发者工具来查看可能出错的地方的数据。或者使用HttpWatch来抓包分析。

在开发移动端项目没有网页的情况下,就不能通过这种方式抓取数据进行分析了。这时可以使用Charles满足以上要求。Charles是一款Http代理服务器和Http监视器,当移动端在无线网连接中按要求设置好代理服务器,使所有对网络的请求都经过Charles客户端来转发时,Charles可以监控这个客户端各个程序所有连接互联网的Http通信。

一、安装Charles客户端

打开浏览器访问Charles官网https://www.charlesproxy.com/,下载相应系统的Charles安装包,然后一键安装即可。

Charles提供两种查看封包的页签,一个是Structure,另一个是Sequence,Structure用来将访问请求按访问的域名分类,Sequence用来将请求按访问的时间排序。任何程序都可以在Charles中的Structure窗口中看到访问的域名。

二、Charles常用功能

Charles功能十分强大,这里介绍几个开发中常用的功能。

1、抓取移动设备发送的Http请求

先将移动设备连接到Charles客户端。首先在电脑中输入cmd打开命令行窗口,输入ipconfig查看本机连接无线网络的IP地址,这个地址作为移动设备连接Charles客户端的代理地址,移动设备必须要和计算机在同一网络中才能连接上。打开Charles客户端,点击Proxy->Proxy Settings菜单,可以设置移动设备连接到Charles的端口,这样移动设备代理配置需要的ip地址和端口号都有了。Charles是通过将自己设置成代理服务器来完成抓包的,勾选系统代理后,本地系统(如果通过浏览器发送请求)发送出去的请求都能被截取下来。因此,如果想只抓取手机APP发送的请求的话,可以不勾选WindowsProxy选项,这样在测试时就不会被本机Http请求所干扰。

另外,如果想要抓取浏览器发送的请求包,勾选WindowsProxy选项之后还是抓取失败,可能是浏览器没有设置成使用系统的代理服务器,只要设置成使用系统的代理服务器,或者将浏览器的代理服务器设置成127.0.0.1:8888也可以成功。

移动设备配置之后,第一次通过手机访问手机中的发送请求时,Charles会弹出提示框,提示有设备尝试连接到Charles,是否允许,如果不允许的话,手机发送请求失败,点击Allow允许,这样这个设备的IP地址就会添加到允许列表中,如果错误点击了Deny可以重启Charles会再此提示,或者通过Proxy->Access Control Settings手动添加地址,如果不想每个设备连接Charles都要点击允许的话,可以添加0.0.0.0/0允许所有设备连接到Charles。

2、过滤不必要的网络包

在抓取手机发送的请求时,有许多请求包是对图片等不需要关注的资源的请求,我们只想对指定目录服务器上发送的请求进行抓取,这时候就可以通过过滤网络包的方式实现。有两种实现方式:

1)选择Proxy->Recording Settings菜单,然后在include栏添加需要抓取包的指定服务器请求协议、地址、端口号,也可以在exclude栏添加不抓取包的地址。

2)在Sequence界面的Filter栏中填入需要过滤的关键字。

3、代理转发

我们在进行本地开发功能的测试时,可以将手机请求的地址转发到本机地址的程序进行执行。右键选择Map Remote,配置请求转发的地址。

并选择Tools->Map Remote Settings菜单,勾选配置的转发条目。

也可以右击选择Map Local配置请求映射到本机地址。

4、抓取Https请求

Charles默认情况下是抓取不到Https请求的包的,需要进行配置安装证书。选择Help->SSL Proxying->Install Charles Root Certificate,

点击下一步,

然后继续下一步直到导入成功,

选择Help->SSL Proxying->Install Charles Root Certificate on aMobile Device or Remote Browse菜单,

手机根据提示地址、端口号配置号代理后,浏览器打开http://chls.pro/ssl

选择允许,

安装证书,然后配置Proxy->SSL Proxying Settings,添加要抓取的Https请求,

如果不使用Charles,想要删除手机里面的证书,可以通过手机中的设置->通用->描述文件与设备管理,删除指定的证书即可。

抓包工具Charles基本用法的更多相关文章

  1. 抓包工具Charles安装时需要注意的地方

    最新接到一个任务,需要为app端的升级提供新的接口.以前没有搞过这个,其实搞完之后也就那样!其中有很重要的一点,就是需要用到抓包工具,进行联调测试,观看app端的数据情况. 抓包工具最常用的两个:fi ...

  2. mac端的优秀抓包工具——Charles使用

    http://my.oschina.net/u/2340880/blog/508688 mac端的优秀抓包工具——Charles使用 一.简介 二.安装与使用 三.使用Charles在mac上进行抓包 ...

  3. 接口测试中抓包工具Charles的使用

    在被测接口并没有明确的接口文档给出时,我们需要借助抓包工具来帮助测试,利用抓包工具我们几乎可以获得接口文档中能给你的一切.常见的抓包工具有Charles和Fiddler, Fiddler只能用在Win ...

  4. 抓包工具charles使用教程指南

    0x01 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!下面来详细介绍下这款强大好用的 ...

  5. Mac 下抓包工具 Charles 修改特定请求

    Charles 是 Mac 下常用的抓包工具,它通过将自己设置成系统的代理服务器,从而完成了抓包的工作. 同类的工具还有 fiddler 和 Wireshark,其中 fiddler 是微软公司使用 ...

  6. 抓包工具Charles的使用教程

    参考:https://zhubangbang.com/charlesproxy 如果您是您一次使用Charles,可能对下面的感兴趣. Charles破解版免费下载和安装教程 Charles手机抓包设 ...

  7. postman 抓包工具charles的使用

    1.直接打开charles,然后,如果有https的话,需要安装证书,然后,设置代理 2.如果不是https的,不需要设置代理,直接抓取就可以 先安装证书: 然后设置代理:               ...

  8. Http/Https抓包工具Charles最新版破解教程(Windows|Mac)

    Charles介绍 Charles是一款强大的http/https抓包工具,可以抓取各种数据请求,查看请求的头信息,请求信息,返回信息等.本文主要介绍Charles的破解过程,包括Windows平台和 ...

  9. 抓包工具Charles的使用说明

    Charles介绍&前期准备: Charles介绍:Charles跟fiddler是目前行业中比较常用的抓包工具,这里主要介绍Charles的使用,fiddler的使用类似. 前期准备:使用前 ...

随机推荐

  1. MySQL的Limit详解

    问题:数据库查询语句,如何只返回一部分数据? Top子句 TOP 子句用于规定要返回的记录的数目.对于拥有数千条记录的大型表来说,TOP 子句是非常有用的. 在SQL Server数据库中语法为: S ...

  2. spark-2.4.0-hadoop2.7-安装部署

    1. 主机规划 主机名称 IP地址 操作系统 部署软件 运行进程 备注 mini01 172.16.1.11[内网] 10.0.0.11  [外网] CentOS 7.5 Jdk-8.zookeepe ...

  3. SQLServer修改数据列

    修改数据列 在开发和生产过程中,列名的拼写错误或者列名的更改是需要操作数据表的,大多数情况下都是不需要修改的. 以下几种情况下我们并不能直接修改数据列: 1.用于索引的列. 2.用于 CHECK.FO ...

  4. Git与SVN交叉使用

    将本地git项目添加到远程svn中 git svn [svnprojpath] svnprojpath为原创svn项目路径 -- 文件夹路径,你要放到哪个文件夹 官方文档中带有-s参数,但我这边加了会 ...

  5. 【Python 13】分形树绘制1.0--五角星(turtle库)

    1.案例描述 2.案例分析 引入绘制图形的turtle库,利用库中函数进行编程. 3.turtle库 没有显示的input()和output(),没有赋值语句.调用形式大部分如下: import tu ...

  6. spring boot +mybatis(通过properties配置) 集成

    注:日常学习记录贴,下面描述的有误解的话请指出,大家一同学习. 因为我公司现在用的是postgresql数据库,所以我也用postgresql进行测试 一.前言 1.Spring boot 会默认读取 ...

  7. excel poi导出demo

    最近做了一个excel 导出的demo,是抄写老大的(嘻嘻嘻),现在把demo源码放在这里 链接:https://pan.baidu.com/s/1_xj0hej-1xwX5JF39acEOg 提取码 ...

  8. day 15 模块、起别名、from导入

    模块 '''模块:一系列功能的集合体​定义模块:创建一个py文件就是一个模块,该py文件名就是模块名​使用模块:在要使用模块的文件中,通过 import 模块名 来导入模块 '''​'''import ...

  9. 10分钟,AppCan帮你搞定跨平台开发APP问题!

    跨平台开发APP时,开发者总会遇到一些问题,如打包失败等等,尤其对于iOS来说,由于它的限制性会导致一些状况发生(如证书上传问题等),小编总结了几个AppCan在线IOS打包失败常见的情况及排查技巧, ...

  10. 012_call和apply区别

    一. function fn(a,b) { console.log(this); } fn.call(null,1,2); //call为参数方式 fn.apply(null,[1,2]); //ap ...