Charles 是一个网络调试的代理工具,类似 Windows 下的 Fildder,这里介绍下几个常用的调试技巧,使用的版本是 Charles 4。

1、移动端抓包

在移动开发中,经常会遇到在手机上调试的场景,这时候就可以通过 Charles 进行抓包,设置也很简单:

在菜单栏上选择 Proxy 》Proxy Settings,勾选 Enable transparent HTTP proxying,代理端口填写 8888,也可以自定,这样设置就完成了;

接下来是手机端的设置,以 iPhone 为例:

在 iPhone 的 设置 》无线局域网,选择当前 WIFI 链接的详情,将底部有HTTP代理切换成手动,然后填上 Charles 所运行电脑的 IP,及端口号:

这时用手机访问网络,Charles 会弹出确认对话框,确认即可。

2、模拟移动网络环境

在菜单栏上选择,选择 Proxy 》Throttle Setting,勾选上 Enable Throttling,然后就可以选择需要模拟的网络环境了:

3、修改 Request 网络请求

在调试时我们经常需要改变请求参数,这个功能就很方便,设置方法:

在请求列表中选择需要修改的请求,在反键菜单中选择 Compose,接下来就可以在下面修改 key,value 了,最后点击 Execute 发送请求。

除此之外设置断点也可以修改 Request,这个在下面的第四点中一起介绍。

4、修改 Response 网络请求

与上条类似,调试时我们也需要对服务端的各种返回做处理,所以可以直接用 Charles 修改 Response 返回,设置有两个方法实现,一个是临时设置断点:

在请求列表中选择需要修改的请求,反键选择 Breakpoints,然后再次访问这个接口,这时 Charles 会捕获到该接口并让你修改 Request,修改完成后点击 Execute 会再次让你修改 Response,这时就可以修改,key,value 了,同样点击 Execute 发送请求。

例子中简单的发送了一个 Ajax 请求,默认返回值为 ret:0,通过添加 Rewrite 规则后,我们可以看到浏览器中返回值为 ret:1 了:

另一个方法是设置 Rewrite,如果我们要经常性的修改 Response,那断点模式就比较繁琐,设置 Rewrite 即可一劳永逸:

在请求列表中选择需要修改的请求,在菜单栏上选择 Tools 》Rewrite,依次添加规则,修改的地址,修改值:

5、网络映射功能

映射分为 Map Local 和 Map Remote,第一个是将网络请求映射到本地,而第二个是映射到另一个服务地址,先以 Map Local 为例:

我们在 Charles 中找到一个样式表文件,反键菜单中选择 Map Local,然后在 Map To 地址中填入本地的一个样式表:

刷新网页即可看到原本灰色的背景被改成了橙色,这个方法非常适用调试线上的 Javascript、CSS 文件。

然后在来看看 Map Remote 设置,反键菜单中选择 Map Remote,这里我们把 www.qq.com 映射到本地的一个 Node 服务:

打开 www.qq.com 看到就是 127.0.0.1:3004 服务,这个方法可以用于调试线上的 Ajax 请求接口。

Charles 的几个调试技巧的更多相关文章

  1. 移动端 Web 网页调试技巧

    原文出处: 盛瀚钦 本文主要列举了调试本地网页.查看测试环境网页的各种方法,涵盖了PC.iPad.移动端的调试技巧. 本文的不足之处在于,小溪里暂时还没有找到调试位于微信中和安卓各国产浏览器上的网页. ...

  2. 【工具】VS2010常用调试技巧(1)

    调试是一个程序员最基本的技能,其重要性不言自明.不会调试的程序员就意味着他即使会一门语言,却不能编制出好的软件.本文就本人在开发过程中常用的调试技巧作下简单呢介绍,希望对大家有所帮助,能力超群者请绕道 ...

  3. Visual Studio高级调试技巧

    1. 设置软件断点,运行到目标位置启动调试器 方法①:使用汇编指令(注:x64 c++不支持嵌入汇编) _asm 方法②:编译器提供的方法 __debugbreak(); 方法③:使用windows ...

  4. 【转】你所不知道的Android Studio调试技巧

    这篇写Android studio debug技巧个人觉得写得不错,转自:http://www.jianshu.com/p/011eb88f4e0d# Android Studio目前已经成为开发An ...

  5. VS调试技巧,提高调试效率(转):

    如果你还没有使用过这些技巧,希望这篇博文能帮你发现它们. 它们学起来很容易,能帮你节省很多时间. 运行到光标(Ctrl+ F10) 我经常看见人们是这样来调试应用程序的: 他们在应用程序需要调试的代码 ...

  6. iOS各种调试技巧豪华套餐

    转载自http://www.cnblogs.com/daiweilai/p/4421340.html 目录 前言 逼优鸡 知己知彼 百战不殆 抽刀断Bug 普通操作 全局断点(Global Break ...

  7. xcode调试技巧

    xode报错有时挺无厘头,完全不知道哪里出的问题,最后还得用排除法,记录一些工作中认为有用的调试技巧 1.左侧视图点断点视图,左下角点加号,选择exception breakpoint,类型选c++, ...

  8. 你所不知道的Android Studio调试技巧

    转载:http://www.jianshu.com/p/011eb88f4e0d Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为开发者,调试并发现bug ...

  9. Visual Studio原生开发的20条调试技巧(下)

    我的上篇文章<Vistual Studio原生开发的10个调试技巧>引发了很多人的兴趣,所以我决定跟大家分享更多的调试技巧.接下来你又能看到一些对于原生应用程序的很有帮助的调试技巧(接着上 ...

随机推荐

  1. 10.1(java学习笔记)JDBC基本操作(连接,执行SQL语句,获取结果集)

    一.JDBC JDBC的全称是java database connection java数据库连接. 在java中需要对数据库进行一系列的操作,这时就需要使用JDBC. sun公司制定了关于数据库操作 ...

  2. 专访阿里巴巴研究员“赵海平”:Facebook的PHP底层性能优化之路(HipHop,HHVM)

    专访阿里巴巴研究员“赵海平”:Facebook的PHP底层性能优化之路 http://www.infoq.com/cn/articles/interview-alibaba-zhaohaiping

  3. 扑克模拟,牌型判断java版

    Card类 package com.company; public class Card { private String color; private Integer value; public S ...

  4. ASP.NET Core 1.0基础之静态文件处理

    来源 这些HTML , CSS files, image files, 和JavaScript这些静态文件,是ASP.NET能够直接响应给客户端的.本文详述下ASP.NET和静态文件的关系. Serv ...

  5. JavaScript里面向对象的继承:构造函数"继承"的六种方法

    //现在有一个"动物"对象的构造函数. function Animal(){ this.species = "动物"; } //还有一个"猫" ...

  6. MAC 使用技巧及常用软件备忘

    公司转向MAC快一年, 换了MAC PRO半年时间,MAC这东西除了颜值和性能,软件真是不如WINDOWS啊,不是没有,只是好多都收费! 先介绍几个跨平台的. WIN+MAC 通用: 浏览器: CHR ...

  7. Java线程:概念与原理(转)

    一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程.比如在 ...

  8. ParallelProgramming-多消费者,多生产者同时运行并行

    在上一篇文章演示了并行的流水线操作(生产者和消费者并行同时执行),C#是通过BlockingCollection这个线程安全的对象作为Buffer,并且结合Task来实现的.但是上一篇文章有个缺陷,在 ...

  9. Node.js 使用http客户端得到网站的图片下载到本地

    以下代码有些冗余,大家捡核心看就好. // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // cheerio模块,提供了 ...

  10. 微信小程序 解决 数字粗细不一 的bug

    1.bug 2.原因解析 微信小程序本身字体问题 3.解决方案 设置字体 font-family: Microsoft YaHei; .