charles的基本介绍与使用

目录

  • Charles安装
  • 一、抓包
    • 1.http请求
      • 1)Charles设置
      • 2)手机设置
      • 3)抓包
    • 2.https请求
      • 1)前提
      • 2)手机安装证书
      • 3)电脑安装证书
      • 4)Charles开启Enable SSL Proxying
  • 二、重定向(Map)
    • 1.Map Remote
    • 2.Map Local
  • 三、Mock数据
    • 1.断点(Breakpoints)
    • 2.文件映射(Map Local)
  • 四、其他
  • 1.限速
  • 五、Q&A

在这里插入图片描述

Charles安装

下载链接:https://www.charlesproxy.com/download/
同时支持Windows和Mac平台
以下内容基于Charles V 3.11.5
Fiddler/charles

一、抓包

1.http请求

1)Charles设置

Help - Local IP Address,可以查看电脑IP:
在这里插入图片描述

查看IP其它方法:
Windows:

WIN+R,打开“cmd”
输入命令ipconfig
Mac:
系统偏好设置 -> 网络
Proxy - Proxy Settings,查看代理端口,默认值8888,也可自行修改:
在这里插入图片描述
在这里插入图片描述

2)手机设置

iPhone:
点击红框位置打开代理设置页面,填写电脑端的IP和端口:
在这里插入图片描述

Android:
手机-设置-WiFi-已连接WiFi-详情-高级-代理-手动-主机名/端口
在这里插入图片描述

手机连上代理后,Charles将弹Access Control弹框,点击「allow」

误点了Deny?
Proxy - Access Control Setting,把手机的IP地址加上

3)抓包

选择一个请求
Overview:
请求的总体概况,包括请求URL/状态/请求方式/耗时/流量等信息,其中size是本次请求消耗的流量,具体到request和response的流量
在这里插入图片描述

Request:
点击「Form」,列出请求的所有参数
在这里插入图片描述

部分请求带了cookie,如打开团单详情页时请求的itemDetailNew接口
ctag埋点也在cookie中,即图中的bn_na_ctag字段,值经base64加密处理
在这里插入图片描述

Response:
以JSON或者JSON Text形式查看response
在这里插入图片描述
在这里插入图片描述

2.https请求

1)前提

Server端支持https请求
证书
在这里插入图片描述

证书是在Client和Server间建立SSL连接的基础
在Client和Server间加了代理后,要在 手机 - 代理工具、代理工具 - Server 间建立SSL连接,手机和电脑上都要安装证书

2)手机安装证书

在手机连上代理后,用手机浏览器打开网址:http://charlesproxy.com/getssl,或是chl.pro/ssl,按提示安装证书。在安装证书前,手机需启用解锁密码。
在这里插入图片描述

Android:
在这里插入图片描述

iOS:
浏览器(建议用Safari)打开网址:http://charlesproxy.com/getssl
手机未安装过描述文件时,证书状态是“尚未验证”,点击安装
输入手机解锁密码,手机需设置密码后才能安装证书

3)电脑安装证书

Help - SSL Proxying - Install Charles Root Certificate
在这里插入图片描述

4)Charles开启Enable SSL Proxying

未开启Enable SSL Proxying时抓到的请求
在这里插入图片描述

开启SSL Proxying:
点击选择一个host,右键弹出菜单,点击「Enable SSL Proxying」
在这里插入图片描述

在Proxy - SSL Proxying Settings中可以查看已经开启SSL Proxying的host
在这里插入图片描述

TIPS:由于对app.nuomi.com域名做了dns-Proxy(防止运营商劫持,app.nuomi.com域名会解析成若干个IP),APP通过IP请求服务端,需要开启这些IP(约3-5个)的SSL Proxy
在这里插入图片描述

二、重定向(Map)

1.Map Remote

naserver上线回归预览机或者单台时,通过以下配置,可将所有请求naserver的接口重定向至某台特定的机器
Tools - Map Remote
在这里插入图片描述

配置Map From:配置支持通配符,Path填写:/naserver*
配置Map To:http://nj03-orp-app1159.nj03:8200(2016.7.21 naserver单台机器,可能有变化,以上线当天orp上线单的机器为准)
在这里插入图片描述

启用Enabel Map Remote,勾选需要的规则
在这里插入图片描述

使用Map Remote的一些场景
背景:首页组件猜你喜欢样式优化,naserver likeitem接口的代码未上线,部署在QA环境,homepage接口无改动
问题:QA环境的homepage接口暂时不可用,组件无法回归到金刚分类和各类运营位
解决方案:
请naserver QA调通QA环境的homepage接口,请MIS QA配置各类运营位
将homepage接口通过map remote重定向到线上

2.Map Local

在这里插入图片描述

保存接口的response至本地
开启:Tools - Map Local - Enable Map Local
在这里插入图片描述

配置map规则,并勾选
在这里插入图片描述
在这里插入图片描述

三、Mock数据

1.断点(Breakpoints)

选择一个接口-右键-breakpoints-设置断点-刷新手机页面-edit response-excute-检查手机展示的是不是你edit的response的内容
1、今天讲的断点修改request后,返回报错的问题,是因为我们修改了request参数值之后sign值就变了,sign不对的话,会导致验参不通过,所以就报错;
2、考虑生成正确的sign值,但是因为我们不知道秘钥也不知道接收方的编码方式,所以无法生成正确的sign值进行验参;
3、所以就像我们今天操作的那样,不编辑request,直接下一步,然后编辑response,再对照手机看是否修改成功;

2.文件映射(Map Local)

四、其他

1.限速

限流:
Charles限流
Proxy-throting setting-enable
注:Bandwidth(带宽):模拟连接速度、
Utilistation(利用百分比)
Round-trip(往返延迟):延迟也可以设置为任意毫秒数。延迟延迟模拟在较慢连接上经历的延迟,即在发出请求和在另一端接收请求之间的延迟
MTU(最大传输单元)
3G随使用环境的不同约有300k-2Mbps左右的水平,2.5G(GPRS)一般在100kbps左右,2G(GSM)一般在5-9kbps左右

五、Q&A

1.Charles无法抓到手机的请求,或者切换网络环境后无法抓到请求
表现:1.手机正常连接代理,但Charles无法抓到任何请求;2.在公司网络环境下使用正确,但在家里手机连接IP后,Charles没有弹出是否要接入的弹窗。
问题:请求被防火墙拦截
解决方法:控制面板->系统和安全->Windows 防火墙->允许程序通过windows防火墙通信,允许通过所有请求即可,如图

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leoon123

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值