zoukankan      html  css  js  c++  java
  • Charles使用

    Charles使用

    1. Charles简介

    Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器。当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。

    Charles通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用,安装Charles的时候要先装好Java环境

    Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

    Charles 主要的功能包括:

    截取 Http 和 Https 网络封包。

    l 支持重发网络请求,方便后端调试。

    l 支持修改网络请求参数。

    l 支持网络请求的截获并动态修改。

    支持SSL代理。可以截取分析SSL的请求。

    支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。

    支持AJAX调试。可以自动将json或xml数据格式化,方便查看。

    支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。

    检查HTML,CSS和RSS内容是否符合W3C标准。

    2. Charles安装

     

    安装Charles需要先安装配置好Java环境,然后下载安装即可使用。

    官网下载:https://www.charlesproxy.com/download/

    如下图所示,根据需要下载对应的安装包:

    下载完成后点击安装包安装即可(建议安装目录自己新建一个Charles文件夹,不要安装在C盘中)

    安装完成下载后打开软件:

    软件的主页面:

    3. Charles抓包(windows浏览器)

    3.1 Charles抓取http包

    proxy -> windows proxy (勾选则抓取计算机的请求,安装完成后默认勾选)
    proxy -> Mozilla Firefox proxy (勾选则抓取计算机上 Mozilla、Firefox浏览器的请求)
    app 进行数据抓取的场景,这两项 不勾选 。

    打开浏览器,登录招生系统,抓取登录的包:

    点击总结,可以看到具体的请求:

    点击查看请求内容(也可以通过左侧树状图查看):

    抓取json格式的包(新建学校):

    3.2 Charles抓取HTTPS的包

    打开Charles,访问www.baidu.com,发现抓取的包提示unknown,是因为包是HTTPS,无法抓取。抓取HTTPS的包需要安装证书

    安装证书:

    Help>>SSL Proxying>>Install Charles Root Certficate>>安装证书

    选择本地计算机>>下一步(N)

    选择将所以的证书都放入下列存储(P)>>浏览(R)...>>受信任的根证书颁发机构>>确定>>下一步(N)

    选择完成即可。

    如果浏览器未安装证书,需要给浏览器也安装证书(先在设置查看是否安装有证书):

    Charles-》Help-》SSL Proxying-》Install Charles Root Certificate on a Mobile Device or Remote Browser,如下图

    根据提示,在浏览器地址栏输入“chls.pro/ssl”下载证书

    在浏览器上安装证书后,查看浏览器上的证书(Chrome为例):

    浏览器和Charles证书全部安装完成后

    进入Charles - 》 Proxy - 》 SSL Proxying Settings

    勾选复选框,点击Include区域的Add,在Host区域输入*.*>>OK

    点击“Add”按钮,在弹出框的 “Host” 和 “Port” 都输入“*”,最后点击OK,根据提示,这样配置可以抓取所有的https包

    抓取HTTPS配置完成了,可以访问www.baidu.com试一下

    4. Charles抓包(APP)

    4.1 Charles抓取http的包

    抓取APP上http的包,首先通过Help>>SSL Proxying>>Install Charles Root Certficate安装好证书

    证书安装完成后,设置手机网络代理,打开Charles,菜单栏Proxy->Proxy setting,设置端口号(端口号默认为8888),勾上Enable transparent HTTP proxying

    然后查看本机ip地址:

    点击charles的help->Local IP Address查看,或者在电脑上进入doc命令模式,输入ipconfig命令即可查看ip地址。

    知道了本地ip和端口后就可以进入手机网络代理的设置

    手机连接wifi(一定要和电脑在同一个局域网才行),打开你连接的wifi的高级设置,苹果是点击你连接wifi后面的感叹号,将代理模式设置为手动,之后将刚刚查看的ip和端口号填入

    完成手机代理设置以后Charles会弹出一个对话框,选择允许抓取。

    这样就可以抓取APP上面的http请求的包了

    4.2 Charles抓取HTTPS的包

    如果想要抓取HTTPS的包,就要给手机安装证书,Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser,会给出具体的安装步骤,如下图

    手机打开浏览器,输入chls.pro/ssl ,下载证书,安装。如果是iphone,输入网址后,提示在设置里安装描述文件,打开设置-》通用-》描述文件-》安装,安装完打开设置-》通用-》关于本机-》证书信任设置-》打开

    注意1>打开这个网址 chls.pro/ssl 是要在能抓http包的基础上去安装,若打开不了网址,请检查是否设置好HTTP代理和打开电脑上的Charles。

    注意2>若检查完以上步骤还是提示抓包有误,则需要在设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书

    配置到这里之后,在Charles: Proxy->SSL Proxy Settings里添加想抓的站点,(如果在电脑上抓取HTTPS的包已经设置了,可以不用管)

    通过Charles要想抓取某个https协议的内容,要SSL Proxy Settings选项里面添加某个https协议的网址和端口号即可,想要截取所有HTTPS协议,如下图

    端口也可以设置为*,代表所有

  • 相关阅读:
    AR路由器web界面每IP限速配置方法
    传输层:TCP 协议
    从需求的角度去理解Linux系列:总线、设备和驱动
    京东的个性化推荐系统
    数据挖掘-MovieLens数据集_电影推荐_亲和性分析_Aprioro算法
    Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()
    Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
    拦截器及 Spring MVC 整合
    表现层 JSP 页面实现
    Controller 层实现
  • 原文地址:https://www.cnblogs.com/wwho/p/12806807.html
Copyright © 2011-2022 走看看