一、安装Charles

二、使用

1.http抓包

1.1 现在我们默认是在进行iOS开发,首先确保iPhone和Mac是在同一个局域网下(连同一个WiFi)。然后查看Mac的IP地址(打开网络偏好设置即可看到),假设我的IP地址为:192.168.1.2. 然后进入iPhone,进行HTTP代理设置,从关闭改为手动,在服务器位置输入刚才Mac的IP地址。在端口位置输入8888.如图:

1.2 然后就可以开始进行抓包了。打开Charles,会弹出是否允许,选择Allow即可。然后在iPhone上打开你要抓包的App,在Charles上就会看到抓包结果:

2.https抓包

Https抓包配置比Http抓包配置麻烦一点点。首先把证书(在压缩包中的crt文件)安装到iPhone上(装证书通过邮件的方式发送到iphone上的邮件应用中,点击即可自动安装)。安装完成以后,其他配置都和http抓包一样。额外的配置如下(我是最新的3.11版本,配置可能与其他网上3.x版本的配置稍有不同):

2.1 点击Proxy-->SSL Proxying Settings ,就会出现如下界面:

勾选Enable SSL Proxying,然后点击 Add 按钮,按下图格式进行配置(*号为通配符,表示可以对任意主机的任意端口的请求进行抓包,也可以指定某一主机和端口):

2.3 经过以上步骤,就可以进行Https抓包了。其他操作过程同http抓包。

注意:当你抓包结束后,就要去iPhone里把网络的HTTP代理关闭,否则可能会造成无法上网的情况。

三、抓包结果详解

3.1 http抓包结果

如果按照上面的过程配置好后,在手机上使用任意应用请求网络后(注意一定要用真机才可以),就会得到http请求的抓包结果,如下图:

左侧是显示结构:Structure是树状结构显示,Sequence是水平结构显示。两者基本类似,我以树状结构来进行介绍。左侧的树状结构是我进行网络请求的url链接,每一个层级表示了以“/”隔开的子域名。通过上述的代码也可以看到我GET请求的url链接是:http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode=18888888888&userId=

右侧是详情页,其中第一个Overview是概览。我对一些字段进行介绍:

(1)URL:我进行网络请求的链接;

(2)Status:当前状态,complete表示请求完成;

(3)Responce Code:返回码。不同的接口,不同的请求结果,返回码都不同;

(4)Protocol:使用的协议;

(5)Method:请求方式,如GET请求,POST请求等;

(6)Kept Alive:判断当前是否正在链接(活跃);

(7)Content-Type:发送的内容类型,如这里用的是XML文本,以UTF8的方式发送;

(8)Client Address:客户端的IP地址;

(9)Remote Address:远程服务器的IP;

Timing:

(10)Request Start Time:请求开始的时间;

(11)Request End Time:请求结束的时间;

(12)Response Start Time:返回开始的时间;

(13)Response End Time:返回结束的时间;

Size:

(14)Request Header :请求的头部大小;

(15)Request Header:返回的头部大小;

(16)Request : 请求发送的大小;

(17)Response:返回数据的大小;

(18)Total:所有数据大小;

(19)Request Compression :请求压缩;

(20)Response Compression: 返回压缩;

第二个页面"Request"是关于请求发送的。下面的Headers,Query String,Raw。

(1)Headers:发送请求的头部信息;

(2)Query String:发送参数列表;

(3)Raw:发送的原生数据,包括了头部和参数;

右侧的"Response"的是关于所有返回信息的。

(1)Headers:是返回的头部信息;

(2)Text:返回信息(除去头部)后的文本;

(3)Hex:返回信息的16进制表示;

(4)XML:我返回的数据是XML。如果你返回的是JSON,这里就会显示JSON;

(5)XML Text:如果你返回JSON,这里会显示JSON Text;

(6)Raw:返回的所有原生数据,包括头部;

"Summary"里面是发送数据的一些简要信息。

"Chart"是一些简要信息的图表表示。

Charles顶部的一些常用的工具栏做一个介绍:

(1)New Session:新建一个会话。也就是在一个新的Charles界面查看网络情况;

(2)Open Session:打开一个之前保存的会话;

(3)Close the current Session:关闭当前的会话;

(4)Save the current Session:保存当前的会话;

(5)Clear the current Session:清空当前的会话(比较方便,常用);

(6)Find Text in the current session:相当于查找功能;

3.2 https抓包结果

由于目前iOS9更改了对于https网络的安全机制,所以还需要在iPhone上安装一个证书,安装方式如下:

在iPhone的Safari浏览器中直接输入网址:http://www.charlesproxy.com/getssl 。进行安装Custom Root证书.安装完成之后可以进入设置-->通用-->描述文件,里面可以看到你所有安装的证书。到目前为止,对于https抓包,至少已经安装了两个证书了,第一个也就是在前面安装的。

现在打开iPhone的任意一个App,查看抓包结果:

其中http打头的都是通过http抓包生成的;https打头的则是通过https抓包生成的。如果你没有配置好https抓包,那么https前面的是一把锁,抓包成功的才是显示蓝色小球。

某一个https抓包结果如下:一些关于使用方式、参数的介绍同http抓包。

十分钟学会抓包   http://www.jianshu.com/p/5539599c7a25

使用Charles进行网络抓包的更多相关文章

  1. CatchPacket网络抓包软件

    CatchPacket网络抓包软件  qq  22945088431.技术特点:基于WinPcap库,c# winform2.实现获取机器所有网卡,可任意选择监听3.可以捕获常见网络协议arp dns ...

  2. 网络抓包wireshark(转)

    转自 网络抓包wireshark   抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经 ...

  3. 跨平台网络抓包工具-Microsoft Message Analyzer

    Microsoft Message Analyzer (MMA 2013)是微软最受欢迎的Netmon的最新版本. 在Netmon网络跟踪和排除故障功能的基础上提供了更强大的跨平台网络分析追踪能力.园 ...

  4. Microsoft Message Analyzer (微软消息分析器,“网络抓包工具 - Network Monitor”的替代品)官方正式版现已发布

    来自官方日志的喜悦 被誉为全新开始的消息分析器时代,由MMA为您开启,博客原文写的很激动,大家可以点击这里浏览:http://blogs.technet.com/b/messageanalyzer/a ...

  5. 网络抓包工具-Wireshark学习资料

    wireshark一个非常牛逼的网络抓包工具.转载一系列博文 一站式学习Wireshark(一):Wireshark基本用法 一站式学习Wireshark(二):应用Wireshark观察基本网络协议 ...

  6. 三种经典iPhone上网络抓包方法详解

    此文章来自:听云博客 很多时候需要网络抓包分析,在iPhone上抓包稍有不同,下面介绍三种常用的方式.分析工具以wireshark为例. 一.最简单的方式:用PC作为热点,在PC上抓包 优点:简单 缺 ...

  7. HttpWatch网络抓包工具的使用

    HttpWatch网络抓包工具是专为IE浏览器集成的一款网络拽包工具.   是一款强大的网页数据分析软件,是最好用的抓包工具,httpwatch可以抓到上传视屏图片的包,一般的抓包软件是抓不到的.打开 ...

  8. 网络抓包--Wireshark

    Wireshark 是一款非常棒的Unix和Windows上的开源网络协议分析器.它可以实时检测网络通讯数据,也可以检测其抓取的网络通讯数据快照文件.可以通过图形界面浏览这些数据,可以查看网络通讯数据 ...

  9. Android 下使用tcpdump网络抓包方法

    Android 下使用tcpdump网络抓包方法 抓包需要tcpdump以及Root权限,tcpdump在本文后有下载. 首先把tcpdump传进手机,用adb命令(放SD卡有时会有问题,我一次可以用 ...

随机推荐

  1. 20181019 记录 window.setTimeout('dofunction()',2000); - layui form 表单提交 事件 - F11全屏 事件 window.onresize

    1 延时事件 window.setTimeout('dofunction()',2000); 函数外面要有引号 如果没有引号 就不能延时执行 应该是内容进行eval,所以外层不是传递字符串的话,外层函 ...

  2. springboot Tomcat connector configured to listen on port 8081 failed to start.

    启动报 Tomcat connector configured to listen on port 8081 failed to start.   The port may already be in ...

  3. 基于oauth2.0实现应用的第三方登录

    OAuth2 OAuth2所涉及到的对象主要有以下四个: Client 第三方应用,我们的应用就是一个Client Resource Owner 资源所有者,即用户 Authorization Ser ...

  4. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  5. Centos7 64bit Linux系统安装SVN 和 http访问配置

    第一步,更新源,并通过yum下载安装svn [root@virde ~]# yum update [root@virde ~]# yum -y install subversion 安装过程中,全部选 ...

  6. python3爬虫-爬取58同城上所有城市的租房信息

    from fake_useragent import UserAgent from lxml import etree import requests, os import time, re, dat ...

  7. Python中的列表(4)

    1.遍历列表 如果想打印列表中的所有元素,则必须遍历列表. 可以使用for ... in ... 语句来遍历列表中的元素.遍历的意思 words = ['a','b','c','d'] for wor ...

  8. web应用无法访问的原因之一以及如何设置数据库编码

    这篇随笔,本是应该是在前天晚上发的,但是因为事情太多,硬生生拖到了现在,当时,在我将web应用部署到服务器上时,在调用接口时,客户端没有任何反应,应该是又出异常了,查看了控制台的异常输出,提示requ ...

  9. 2018/08/23 cstring中memset()函数的运用

    好多东西其实以前已经查过了,然后当时理解的还行,可是过段时间没用有些又会忘记,然后又去找资料又查,浪费了不少的时间和精力,所以,我,曾国强,今天起,要好好做笔记了! 今天复习第一个知识点,为什么要叫复 ...

  10. 2017 计蒜之道 初赛 第一场 B阿里天池的新任务(简单)

    题链:"https://nanti.jisuanke.com/t/15500" 本来希望通过找循环节然后套KMP来通过后面题的,可是只过了B题,可能循环节不一定是存在的. #inc ...