charles工具移动端开发代理和调试_千泓的博客-程序员秘密

技术标签: 移动  调试  组件和工具  调试工具  charles  

一、简介

Charles是目前最强大最流行的http抓包调试工具,Mac、Unix、Windows各个平台都支持。特别是做APP开发,调试与服务端的通信,Charles是必备工具。
目前Charles是收费的,不过可以破解。
Charles下载地址:http://share.weiyun.com/6bbfc169f56589052957eae710a8612a
破解方式
解压charles_3.11.4_Crack.rar,将其中的charles.jar替换掉Charles安装路径中的charles.jar即可

二、Charles工作原理

Charles本质是就是一个http抓包分析工具,在工作的时候需要先把charles设置成代理服务器,这样所有的网络请求都会经过charles了。

三、对移动端进行抓包分析

我们在进行APP开发或测试时,经常需要知道APP的每一步操作调用的是哪个接口,请求参数是什么,返回值是什么,作为服务端,有时还需要对APP的某一个操作进行debug。通过简单配置,我们就可以将我们手机APP上所有请求发送到PC端Charles代理中,Charles会自动抓取http网络包分析请求和返回值,当然这些只是Charles最基本的功能。
下面就介绍如何配置Charles:
手下手机和电脑必须在一个局域网内,不一定非要是一个ip段,只要是同一个路由器下就可以了
在PC端安装Charles,关掉防火墙,打开Charles,进入Proxy->Proxy Setting,设置http proxy代理端口:8888(一般默认设置为这个)
这里写图片描述
在移动端,进入无线网络->点击当前连接的wifi->代理设置->设置服务器地址和端口(各手机配置不太一样),这里的服务器地址就是PC端的IP地址,端口就是上面设置PC端的代理端口8888
这里写图片描述
经过上面设置,我们手机上的所有请求都会发送到我们PC端指定的端口,而这个端口就是Charles的代理端口。所以,客户端的请求和服务端的响应都会经过Charles,我们通过Charles就可以很方便的看到请求和响应相关的数据啦。

四、实际操作演示

Charles提供了两种查看封包的视图,分别是Structure和Sequence。
1. Structure视图将网络请求按访问的域名分类。
2. Sequence视图将网络请求按访问的时间排序。
我们可以在使用时根据需要随时切换。按照上面介绍配置好,下面就开始演示啦。
第一步,我们打开我们的APP,输入用户名密码,点击登录
这里写图片描述
第二步(初次使用可能要求我们给予权限,点击允许即可),再看我们的Charles主界面,structure视图中可以看到这次操作的http请求响应信息,并且请求按域名进行了分组
这里写图片描述
我们可以切换到sequence界面,所有的请求按照请求时间进行排列:
这里写图片描述

五、Charles的其它功能

5.1 过滤功能

如果不设置过滤,手机上所有APP的网络请求都会被解析,看起来很乱,通常情况下,我们只希望看到客户端对应应用服务器的网络请求,这时就需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,我们有2种办法。
1. 在主界面的中部的Filter栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://*.zitech.com,那么只需要在Filter栏中填入zitech.com即可。

  1. 在Charles的菜单栏选择"Proxy"->"Recording Settings",然后选择Include栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:
    这里写图片描述

5.2 其它功能

  1. 支持SSL代理。可以截取分析SSL的请求。
  2. 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
  3. 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
  4. 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
  5. 支持重发网络请求,方便后端调试。
  6. 支持修改网络请求参数。
  7. 支持网络请求的截获并动态修改。
  8. 检查HTML,CSS和RSS内容是否符合W3C标准
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qianhong_/article/details/52511223

智能推荐

YOLOv5发布第六个版本,支持一键适配OpenVINO/OpenCV DNN部署_AI视觉网奇的博客-程序员秘密_yolo最新版

YOLOv5发布了第六个版本,其它我不说,什么是开源精神,不是写个程序扔github就叫开源,而是持续不断改进,精益求精,不断演化版本,增加最有商业价值的功能,YOLOv5做到了。看看最新版本都有哪些新功能让开发者心动....新特性首次发布支持移动端的最小化模型YOLOv5n,只有1.9MB,全称为YOLOv5 Nano。支持模型导出为tensorflow跟keras格式,这是什么鬼,就这招彻底打废原来的tensorflow跟keras版本模仿者!OpenCV DNN支持,原来导出ONNX要支持..

数据库面试总结_沫沫妞 哟的博客-程序员秘密

select trunc(dbms_random.value(1,28)) from dual; 面试定义类试题(一)什么是存储过程?有哪些优缺点?存储过程是一些预编译的SQL语句。更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的...

moveit::planning_interface::MoveGroupInterface 类成员函数文档的翻译_暗影岛之米的博客-程序员秘密

序言这篇博客的内容主要是对 moveit::planning_interface::MoveGroupInterface 的类成员函数进行翻译, moveit::planning_interface::MoveGroupInterface是moveit编程接口类,里面的成员函数几乎涵盖了所有控制机械臂的操作指令。这个类的成员函数分为C++和Python接口,我的C++用的比较多所以是翻译了C++接口的函数,如果是使用Python更多的朋友可以参考python接口的文档。这个文档并没有对函数进行详细的介绍,

Failed to connect to raw.githubusercontent.com port 443: Connection refused_衣乌安、的博客-程序员秘密

mac 安装brew报错相信很多国内很多小伙伴使用mac安装brew的时候都遇到过类似问题,明明按照官网的命令来的却偏偏报错。其原因就是由于我天朝帝国的某些政策原因导致域名不能够正确的解析到对应的ip地址。这里列出两种解决方案:1. 修改hosts,帮助域名得到正确解析sudo vim /etc/hosts修改完以后在安装/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/ins

我的C语言学习日记06——函数的使用和自定义函数_聪明but不绝顶的博客-程序员秘密

运用文档学习使用库函数举例学习strcpy函数举例学习memset函数重要网站https://zh.cppreference.com/w/%E9%A6%96%E9%A1%B5http://cplusplus.com/自定义函数写一个函数可以找到两个整数中的最大值写一个函数来交换两个整型变量的内容需使用指针函数的参数实际参数(实参)真实传给函数的参数叫实参。可以是:常量、变量、表达式、函数等。在进行函数调用时必须有确定的值,以便把这些值传送给形参。形式参..

TCP/IP协议栈设计—TCP设计实现小结_时间看得见的博客-程序员秘密

TCP/IP协议栈设计—TCP设计实现小结在FPGA上采用纯Verilog描述的方式,实现可定制裁剪的TCPIP硬件协议栈,并加入超时重传、滑动窗口等优化算法,最终希望实现传输速率能超过200MHz的千兆以太网。去年3月份,就开始了设计之旅,期间参考了众多论文,网上也查了许多资料。经过一步步设计,现在终于实现了初步的TCPIP传输。现将实现的工程进行简单介绍和总结。设计包含ARP、ICMP、UDP、TCP、IP、MAC全过程的传输,实现TCP连接、接收、发送、断开的整个流程。

随便推点

Trust SSL Domain Validated_Gworg的博客-程序员秘密

Trust SSL Domain Validated网站SSL证书,不是国产SSL证书,因为使用的是PKI设施交叉链,也可以成为品牌包装,原始根证书厂方来是Certum塞图姆,是波兰一家数字证书机构,可信建立在交叉链补充信任,所以证书链很长。所以如果要办理续费或者订购,不妨直接Certum在国内的Gworg合作伙伴采购。这会得到原厂证书的支持并且官方证书链的信任签发条件,并合法性安全性、采购价格都会很多优势。目前的XinChaCha比官方原厂证书都要贵,并且没有原厂原包装的产品优势,

java基本数据类型取值范围_will way的博客-程序员秘密_基本数据类型的取值范围

java基本数据类型取值范围在JAVA中一共有八种基本数据类型,他们分别是 byte、short、int、long、float、double、char、boolean1.整型其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样1.1 byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)1.2 short的取值范围为-32768...

oracle dg巡检,文档-oracle11g_物理dg日常巡检手册.docx_高太爷的博客-程序员秘密

文档-oracle11g_物理dg日常巡检手册.docx 文件编号ORACLE11GDATAGUARD物理STANDBY日常巡检操作手册编写_____________校对_____________日期_____________目录1、DG环境的日常巡检411、主库环境检查4111、主库实例启动状态检查4112、主库启动模式检查4113、主库DG环境的保护模式检查4114、主库用于控制日志同步的参数...

hadoop-运行hadoop jar hadoop-examples-1.2.1.jar wordcount /wc/input/ /wc/output/_gz153016的博客-程序员秘密

查看结果:在地址栏:输入   主机名:50070点击_logs 下面的进入统计单词的结果。

QMenuBar_虾球xz的博客-程序员秘密_qmenubar

QT菜单1.QMenuBar2.QMenu3.QActionQMenuBar1.QMenuBar *m = new QMenuBar(this);2.QMenu *m1 = m->addMenu(QStringLiteral("菜单1"));3.QAction *a1 = m1->addAction(QStringLiteral("二级菜单1"));4.a1->setIcon(QIcon("test.jpg"));5.connect(a1,SIGNAL(trigger

赫夫曼树及赫夫曼编码的分步骤实现-超详细!_林立可的博客-程序员秘密_已知字符abcd全值分别为7524构造赫夫曼树

8.4,赫夫曼树赫夫曼树是一种带权路径最短的二叉树。带权路径:根节点到所有叶子结点所需路径*结点权值之和。通常路径即为结点所在层数之差,所以权值越大结点离根结点越近。赫夫曼树构建思路:1,将数据按照权值从小到大顺序排列,每个数据结点都看作一个二叉树;2,分别取出权值最小的两个二叉树组成新树,其权值为前两者之和;3,再将新树加入排列中,重复1-2步骤,直到所有结点都被处理。注意:所有的数据都存在了叶子结点上。现使用java实现赫夫曼树的创建。package com.lsk.tree;

推荐文章

热门文章

相关标签