精华内容
下载资源
问答
  • Charles抓包工具使用以及抓取API接口

    万次阅读 2017-09-18 15:48:32
    学会抓包之后,获取某个App的API就是轻而易举的事了,当然,现在有很多App,都对API进行了加密验证,例如Mac校验。所以在这种条件下,调用人家的API就困难得多了。 抓包工具 抓包工具比较常见的是Fiddler,Wire

    抓包(Packet Capture),实际上就是对网络请求(包括发送与接收)的数据包进行截获、重发、编辑、转存等操作,在Android下,也经常被用来进行数据截取等。学会抓包之后,获取某个App的API就是轻而易举的事了,当然,现在有很多App,都对API进行了加密验证,例如Mac校验。所以在这种条件下,调用人家的API就困难得多了。

    抓包工具

    抓包工具比较常见的是Fiddler,Wireshark等,个人比较喜欢Charles,官网,界面简洁人性化,只做数据截取的话,足够用了,并且同时支持Windows,Mac,Linux。下面只介绍在Windows下如何利用Charles进行抓包。官网下载链接:https://www.charlesproxy.com/download 

    主界面



    主机允许代理模式

    菜单栏Proxy -> Proxy settings,Port设置一个不与电脑其他端口冲突的端口号,比如8888,并勾选Enable transparent HTTP proxying,点击OK,这样,就允许了HTTP代理模式。


    主机ip地址

    开始->运行->输入cmd->ipconfig 得到主机的ip地址。



    客户端设置代理

    Android须和主机处于同一个局域网下(连同一个路由器,同网段)。在Android中打开设置->WLAN->修改当前连接的Wifi->打开代理(手动)->输入主机ip地址及代理端口号->保存

    如图手机客户端配置到此

    截获数据包

    前面设置完毕之后,当Android,有进行网络请求时,那么Charles可能会弹出一个对话框,确认是否允许代理,点击Allow,表示允许。如图


    这个时候,请求的地址就会出现在左侧的structure栏里面,点击可以查看具体请求的信息。


    HTTPS

    HTTPS请求,响应数据可能会出现乱码,这时候就需要安装Charles的CA证书,下载后解压,双击crt文件,选择总是信任就可以了,在版本4以上安装证书不需要到官网下载,在charlses->Help->SSLProxying->InstallCharlesRootCertificate来安装证书,只要证书状态为没问题就是安装成功。如图


    当然如果要抓取Android设备上的HTTPS请求,需要在Android上也安装一个证书,在浏览器输入这个网址:http://charlesproxy.com/getssl ,点击安装即可。


    到此如果你的乱码问题还是没有解决,那么你需要在charles->proxy->SSL Proxying Setting 配置,勾选Enable SSL Proxying 并却Add Host:443,Prot:* 如图


    至此Charlse的基本配置已经完成,抓取接口已经没有问题啦(如果不需要抓取电脑上的API接口,可以在Proxy->WindowsProxy勾选去掉,默认是选择的),当然charles还有其他挺多功能,比如模拟网速慢,断点,数据过滤,重定向等功能,这里就不一一介绍了,有兴趣的同学自行研究哈~

    PS:官网下载的Charles是付费的,但是你可以度娘下载补丁包覆盖,这里提供Charles4.0.2-64位补丁包,在安装路径下的Charles\lib\替换charles.jar,这样就是破解版啦


    展开全文
  • 详解Android/IOS平台下抓包工具使用以及抓取API接口

    万次阅读 多人点赞 2016-10-09 10:06:45
    抓包工具 Charles 主机允许代理模式 客户端设置代理 截获数据包 ...模仿一个app UI 请求接口封装 加密请求 Header抓包(Packet ...学会抓包之后,获取某个App的API就是轻而易举的事了,当然,现在有很多App,都对API进行

    抓包(Packet Capture),实际上就是对网络请求(包括发送与接收)的数据包进行截获、重发、编辑、转存等操作,在Android下,也经常被用来进行数据截取等。学会抓包之后,获取某个App的API就是轻而易举的事了,当然,现在有很多App,都对API进行了加密验证,例如Mac校验。所以在这种条件下,调用人家的API就困难得多了。

    在Android或iOS下,抓包的方式不外乎两种,一种是代理,另一种是tcpdump。正常情况下,走代理模式就可以了。

    抓包工具

    抓包工具比较常见的是Fiddler,Wireshark等,个人比较喜欢Charles,官网,界面简洁人性化,只做数据截取的话,足够用了,并且同时支持Windows,Mac,Linux。下面就介绍如何利用Charles进行抓包。Mac OSX下Charles是收费的,这里提供一个破解版下载链接: https://pan.baidu.com/s/1c1NghOW 密码: v74u

    Charles

    charles界面如图

    20161009092216128

    主机允许代理模式

    菜单栏Proxy -> Proxy settings,Port设置一个不与电脑其他端口冲突的端口号,比如8888,并勾选Enable transparent HTTP proxying,点击OK。如图

    20161009092243378

    这样,就允许了HTTP代理模式。

    客户端设置代理

    在Android/iOS下设置代理。

    首先,通过ipconfig查看主机ip地址(mac或linux下使用ifconfig)。

    20161009092416201

    然后,Android或iOS须和主机处于同一个局域网下(连同一个路由器,同网段)。在Android中打开设置->WLAN->长按当前连接的Wifi->修改网络->高级选项->打开代理(手动)->输入主机ip地址及代理端口号->保存,如图

    20161009092444004

    iOS开启代理的方式也差不多,进入设置->无线局域网-> 查看当前连接的Wifi信息->HTTP设置服务器和端口。如图

    20161008172806880

    截获数据包

    前面设置完毕之后,当Android/iOS 下,有进行网络请求时,那么Charles会弹出一个对话框,确认是否允许代理,点击Allow,表示允许。如图

    20161009092607844

    这个时候,请求的地址就会出现在左侧的structure栏里面,点击可以查看具体请求的信息。

    20161009092626848

    Overview:HTTP请求的具体信息,包括URL、请求时间、服务端响应结果等。

    Request:请求参数,包含Headers,Params等

    Response:响应结果,包含Headers,Json格式数据、Json预览等。Json数据就是比较直观的响应体。

    20161009092711251

    这样,就完成了一次HTTP请求的拦截。同样,我们拷贝该URL在浏览器打开,同样可以得到这些json数据。如图

    20161009092809440

    在浏览器也可以安装对应的json格式化插件,例如Chrome的jsonview插件。效果如图

    20161009093149571

    这样,响应的json数据就很直观的展现在我们的面前。

    HTTPS

    HTTPS请求,响应数据可能会出现乱码,这时候就需要安装Charles的CA证书,下载后解压,双击crt文件,选择总是信任就可以了,当然如果要抓取iPhone设备上的HTTPS请求,需要在iPhone上也安装一个证书,在safari输入这个网址:http://charlesproxy.com/getssl ,点击安装即可。

    charles还有其他挺多功能,比如模拟网速慢,断点,数据过滤,重定向等功能,这里就不一一介绍了,有兴趣的同学自行研究哈~

    模仿一个app

    重头戏来了,很多做Android的童鞋都没接触过服务端开发,这时候想要模仿人家做一个app来练手最头疼的就是没有数据来源,没有API,虽然可以选择诸如新浪微博提供的API接口,但是大部分的app在这方面都是没有提供对应接口的,这时候,HTTP抓包就派上用场了。

    UI

    可以解压对应的APK,res及assets下的图片资源是没有被加密的,可以直接使用。其他诸如layout以及drawable的xml资源一般都被加密了,个人认为也没必要去反编译,效率太低了,有图片资源就够用了。

    请求接口封装

    可以通过抓包得到的json数据,来生成一个实体类。那么如果json字段特别多呢?Android Studio提供了一个GsonFormat插件,可以快速的把json数据转换成Java Bean。如图:

    20161009095040317

    点击OK,选择所需字段。一般就默认全选就可以了~

    20161009095153516

    点击OK,就可以生成一个实体类。有了请求URL和实体类,那么封装一个请求接口就不是啥难事啦~~

    加密请求

    有一些做的比较好的接口,可能需要对请求参数做一个校验。例如虎扑体育的API,就需要把所有的请求参数,排序后进行MD5加密,服务端会对加密结果进行校验。但是这方面没有固定的套路,还需要自己檫亮眼睛去发现加密方式~~

    Headers

    在实现的过程中,你可能会发现有部分url直接在浏览器打开,获取不到数据,但是在Charles却可以。那么就很有可能是Header的问题了,那么就需要去尝试把Header信息加入我们的请求里面了。这部分就不细说了,具体可以参考后面的项目。

    20161009095849171

    快速写完,可能语言有点不通顺,还望谅解~~ 喜欢的话就给个赞吧

    参考项目

    上述的追书神器API全部内容,已经托管在GitHub。
    地址:https://github.com/JustWayward/BookReader

    虎扑体育加密API在另外一个项目。
    地址:https://github.com/smuyyh/SprintNBA

    最后,想要说一句的是,这些做法其实不是很可取,至于为什么大家都懂的,把握个度就好~

    展开全文
  • 学会抓包之后,获取某个App的API就是轻而易举的事了,当然,现在有很多App,都对API进行了加密验证,例如Mac校验。所以在这种条件下,调用人家的API就困难得多了。 抓包工具 抓包工具比较常见的是Fiddler,

    抓包(Packet Capture),实际上就是对网络请求(包括发送与接收)的数据包进行截获、重发、编辑、转存等操作,在Android下,也经常被用来进行数据截取等。学会抓包之后,获取某个App的API就是轻而易举的事了,当然,现在有很多App,都对API进行了加密验证,例如Mac校验。所以在这种条件下,调用人家的API就困难得多了。

    抓包工具

    抓包工具比较常见的是Fiddler,Wireshark等,个人比较喜欢Charles,官网,界面简洁人性化,只做数据截取的话,足够用了,并且同时支持Windows,Mac,Linux。下面只介绍在Windows下如何利用Charles进行抓包。官网下载链接:https://www.charlesproxy.com/download 

    主界面



    主机允许代理模式

    菜单栏Proxy -> Proxy settings,Port设置一个不与电脑其他端口冲突的端口号,比如8888,并勾选Enable transparent HTTP proxying,点击OK,这样,就允许了HTTP代理模式。


    主机ip地址

    开始->运行->输入cmd->ipconfig 得到主机的ip地址。



    客户端设置代理

    Android须和主机处于同一个局域网下(连同一个路由器,同网段)。在Android中打开设置->WLAN->修改当前连接的Wifi->打开代理(手动)->输入主机ip地址及代理端口号->保存

    如图手机客户端配置到此

    截获数据包

    前面设置完毕之后,当Android,有进行网络请求时,那么Charles可能会弹出一个对话框,确认是否允许代理,点击Allow,表示允许。如图


    这个时候,请求的地址就会出现在左侧的structure栏里面,点击可以查看具体请求的信息。


    HTTPS

    HTTPS请求,响应数据可能会出现乱码,这时候就需要安装Charles的CA证书,下载后解压,双击crt文件,选择总是信任就可以了,在版本4以上安装证书不需要到官网下载,在charlses->Help->SSLProxying->InstallCharlesRootCertificate来安装证书,只要证书状态为没问题就是安装成功。如图


    当然如果要抓取Android设备上的HTTPS请求,需要在Android上也安装一个证书,在浏览器输入这个网址:http://charlesproxy.com/getssl ,点击安装即可。


    到此如果你的乱码问题还是没有解决,那么你需要在charles->proxy->SSL Proxying Setting 配置,勾选Enable SSL Proxying 并却Add Host:443,Prot:* 如图


    至此Charlse的基本配置已经完成,抓取接口已经没有问题啦(如果不需要抓取电脑上的API接口,可以在Proxy->WindowsProxy勾选去掉,默认是选择的),当然charles还有其他挺多功能,比如模拟网速慢,断点,数据过滤,重定向等功能,这里就不一一介绍了,有兴趣的同学自行研究哈~

    PS:官网下载的Charles是付费的,但是你可以度娘下载补丁包覆盖,这里提供Charles4.0.2-64位补丁包,在安装路径下的Charles\lib\替换charles.jar,这样就是破解版啦


    展开全文
  • 下图是我们临时修改获取用户信息的 API,将用户的昵称进行了更改,修改完成后点击 “Execute” 则可以让网络请求继续进行。 需要注意的是,使用 Breakpoints 功能将网络请求截获并修改过程中,整个网络请求的...

    目录及更新说明

    更新记录:

    • 2013 年 12 月,第一版。
    • 2015 年 11 月,增加 Rewrite 相关介绍。
    • 2016 年 8 月,增加 Charles 4 的介绍,反向代理功能和设置外部代理,并且介绍了如何解决与FQ软件的冲突。

    本文的内容主要包括:

    • Charles 的简介
    • 如何安装 Charles
    • 将 Charles 设置成系统代理
    • Charles 主界面介绍
    • 过滤网络请求
    • 截取 iPhone 上的网络封包
    • 截取 Https 通讯信息
    • 模拟慢速网络
    • 修改网络请求内容
    • 给服务器做压力测试
    • 修改服务器返回内容
    • 反向代理
    • 设置外部代理,解决与FQ软件的冲突
    • 总结

    Charles 限时优惠

    Charles 4 正版限时优惠优惠活动(限时:2016 年 8 月 8 日 - 15 日),优惠 30 元,点击领取优惠券

    简介

    Charles 是在 Mac 下常用的网络封包截取工具,在做
    移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。

    Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

    除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。

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

    Charles 主要的功能包括:

    1. 截取 Http 和 Https 网络封包。
    2. 支持重发网络请求,方便后端调试。
    3. 支持修改网络请求参数。
    4. 支持网络请求的截获并动态修改。
    5. 支持模拟慢速网络。

    Charles 4 新增的主要功能包括:

    1. 支持 Http 2。
    2. 支持 IPv6。

    安装 Charles

    去 Charles 的官方网站(http://www.charlesproxy.com)下载最新版的 Charles 安装包,是一个 dmg 后缀的文件。打开后将 Charles 拖到 Application 目录下即完成安装。

    将 Charles 设置成系统代理

    之前提到,Charles 是通过将自己设置成代理服务器来完成封包截取的,所以使用 Charles 的第一步是将其设置成系统的代理服务器。

    启动 Charles 后,第一次 Charles 会请求你给它设置系统代理的权限。你可以输入登录密码授予 Charles 该权限。你也可以忽略该请求,然后在需要将 Charles 设置成系统代理时,选择菜单中的 “Proxy” -> “Mac OS X Proxy” 来将 Charles 设置成系统代理。如下所示:

    之后,你就可以看到源源不断的网络请求出现在 Charles 的界面中。

    需要注意的是,Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charles 是通过将自己设置成代理服务器来完成封包截取的,所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。如果你需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。

    Charles 主界面介绍

    Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。 

    1. Structure 视图将网络请求按访问的域名分类。
    2. Sequence 视图将网络请求按访问的时间排序。

    大家可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

    对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。

    过滤网络请求

    通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法:

    方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://yuantiku.com , 那么只需要在 Filter 栏中填入 yuantiku 即可。

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

    通常情况下,我们使用方法一做一些临时性的封包过滤,使用方法二做一些经常性的封包过滤。

    方法三:在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed 一项,如下图所示:

    这种方式可以临时性的,快速地过滤出一些没有通过关键字的一类网络请求。

    截取 iPhone 上的网络封包

    Charles 通常用来截取本地上的网络封包,但是当我们需要时,我们也可以用来截取其它设备上的网络请求。下面我就以 iPhone 为例,讲解如何进行相应操作。

    Charles 上的设置

    要截取 iPhone 上的网络请求,我们首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图所示:

    iPhone 上的设置

    首先我们需要获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的 “Help”->”Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图所示:

    在 iPhone 的 “ 设置 “->” 无线局域网 “ 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有「HTTP 代理」一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP,以及端口号 8888,如下图所示:

    设置好之后,我们打开 iPhone 上的任意需要网络通讯的程序,就可以看到 Charles 弹出 iPhone 请求连接的确认菜单(如下图所示),点击 “Allow” 即可完成设置。

    截取 Https 通讯信息

    安装证书

    如果你需要截取分析 Https 协议相关的内容。那么需要安装 Charles 的 CA 证书。具体步骤如下。

    首先我们需要在 Mac 电脑上安装证书。点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,然后输入系统的帐号密码,即可在 KeyChain 看到添加好的证书。如下图所示:

    需要注意的是,即使是安装完证书之后,Charles 默认也并不截取 Https 网络通讯的信息,如果你想对截取某个网站上的所有 Https 网络请求,可以在该请求上右击,选择 SSL proxy,如下图所示:

    这样,对于该 Host 的所有 SSL 请求可以被截取到了。

    截取移动设备中的 Https 通讯信息

    如果我们需要在 iOS 或 Android 机器上截取 Https 协议的通讯内容,还需要在手机上安装相应的证书。点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”,然后就可以看到 Charles 弹出的简单的安装教程。如下图所示:

    按照我们之前说的教程,在设备上设置好 Charles 为代理后,在手机浏览器中访问地址:http://charlesproxy.com/getssl,即可打开证书安装的界面,安装完证书后,就可以截取手机上的 Https 通讯内容了。不过同样需要注意,默认情况下 Charles 并不做截取,你还需要在要截取的网络请求上右击,选择 SSL proxy 菜单项。

    模拟慢速网络

    在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles 对此需求提供了很好的支持。

    在 Charles 的菜单上,选择 “Proxy”->”Throttle Setting” 项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型。如下图所示:

    如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

    修改网络请求内容

    有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。只需要在以往的网络请求上点击右键,选择 “Edit”,即可创建一个可编辑的网络请求。如下所示:

    我们可以修改该请求的任何信息,包括 URL 地址、端口、参数等,之后点击 “Execute” 即可发送该修改后的网络请求(如下图所示)。Charles 支持我们多次修改和发送该请求,这对于我们和服务器端调试接口非常方便,如下图所示:

    给服务器做压力测试

    我们可以使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法如下。

    我们在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,如下所示:

    接着我们就可以在弹出的对话框中,选择打压的并发线程数以及打压次数,确定之后,即可开始打压。

    悄悄说一句,一些写得很弱的投票网站,也可以用这个办法来快速投票。当然,我也拿 Charles 的 Repeat 功能给一些诈骗的钓鱼网站喂了不少垃圾数据,上次不小心还把一个钓鱼网站的数据库打挂了,嗯,请叫我雷锋。

    修改服务器返回内容

    有些时候我们想让服务器返回一些指定的内容,方便我们调试一些特殊情况。例如列表页面为空的情况,数据异常的情况,部分耗时的网络请求超时的情况等。如果没有 Charles,要服务器配合构造相应的数据显得会比较麻烦。这个时候,使用 Charles 相关的功能就可以满足我们的需求。

    根据具体的需求,Charles 提供了 Map 功能、 Rewrite 功能以及 Breakpoints 功能,都可以达到修改服务器返回内容的目的。这三者在功能上的差异是:

    1. Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。
    2. Rewrite 功能适合对网络请求进行一些正则替换。
    3. Breakpoints 功能适合做一些临时性的修改。

    Map 功能

    Charles 的 Map 功能分 Map Remote 和 Map Local 两种,顾名思义,Map Remote 是将指定的网络请求重定向到另一个网址请求地址,Map Local 是将指定的网络请求重定向到本地文件。

    在 Charles 的菜单中,选择 “Tools”->”Map Remote” 或 “Map Local” 即可进入到相应功能的设置页面。

    对于 Map Remote 功能,我们需要分别填写网络重定向的源地址和目的地址,对于不需要限制的条件,可以留空。下图是一个示例,我将所有 ytk1.yuanku.ws(测试服务器)的请求重定向到了 www.yuantiku.com(线上服务器)。

    对于 Map Local 功能,我们需要填写的重定向的源地址和本地的目标文件。对于有一些复杂的网络请求结果,我们可以先使用 Charles 提供的 “Save Response…” 功能,将请求结果保存到本地(如下图所示),然后稍加修改,成为我们的目标映射文件。

    下图是一个示例,我将一个指定的网络请求通过 Map Local 功能映射到了本地的一个经过修改的文件中。

    Map Local 在使用的时候,有一个潜在的问题,就是其返回的 Http Response Header 与正常的请求并不一样。这个时候如果客户端校验了 Http Response Header 中的部分内容,就会使得该功能失效。解决办法是同时使用 Map Local 以下面提到的 Rewrite 功能,将相关的 Http 头 Rewrite 成我们希望的内容。

    Rewrite 功能

    Rewrite 功能功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。

    例如,我们的客户端有一个 API 请求是获得用户昵称,而我当前的昵称是 “tangqiaoboy”,如下所示:

    我们想试着直接修改网络返回值,将 tangqiaoboy 换成成 iosboy。于是我们启用 Rewrite 功能,然后设置如下的规则:

    完成设置之后,我们就可以从 Charles 中看到,之后的 API 获得的昵称被自动 Rewrite 成了 iosboy,如下图所示:

    Breakpoints 功能

    上面提供的 Rewrite 功能最适合做批量和长期的替换,但是很多时候,我们只是想临时修改一次网络请求结果,这个时候,使用 Rewrite 功能虽然也可以达到目的,但是过于麻烦,对于临时性的修改,我们最好使用 Breakpoints 功能。

    Breakpoints 功能类似我们在 Xcode 中设置的断点一样,当指定的网络请求发生时,Charles 会截获该请求,这个时候,我们可以在 Charles 中临时修改网络请求的返回内容。

    下图是我们临时修改获取用户信息的 API,将用户的昵称进行了更改,修改完成后点击 “Execute” 则可以让网络请求继续进行。

    需要注意的是,使用 Breakpoints 功能将网络请求截获并修改过程中,整个网络请求的计时并不会暂停,所以长时间的暂停可能导致客户端的请求超时。

    反向代理

    Charles 的反向代理功能允许我们将本地的端口映射到远程的另一个端口上。例如,在下图中,我将本机的 61234 端口映射到了远程(www.yuantiku.com)的80端口上了。这样,当我访问本地的 61234 端口时,实际返回的内容会由 www.yuantiku.com 的 80 端口提供。

    设置外部代理,解决与FQ软件的冲突

    Charles 的原理是把自己设置成系统的代理服务器,但是在中国,由于工作需要,我们常常需要使用 Google 搜索,所以大部分程序员都有自己的FQ软件,而这些软件的基本原理,也是把自己设置成系统的代理服务器,来做到透明的FQ。

    为了使得两者能够和平共处,我们可以在 Charles 的 External Proxy Settings 中,设置FQ的代理端口以及相关信息。同时,我们也要关闭相关FQ软件的自动设置,使其不主动修改系统代理,避免 Charles 失效。

    总结

    通过 Charles 软件,我们可以很方便地在日常开发中,截取和调试网络请求内容,分析封包协议以及模拟慢速网络。用好 Charles 可以极大的方便我们对于带有网络请求的 App 的开发和调试。

    愿本文帮助大家成为 Charles 的专家,祝大家玩得开心~

     

    转载于:https://www.cnblogs.com/zhun/p/6590169.html

    展开全文
  • 使用http原生包抓取RestAPI接口内容并解析为实体的示例  http://t.cn/RqA5cEG
  • API接口测试

    千次阅读 2019-02-27 16:05:31
    1 fiddler 抓取api接口测试(抓包工具) https://www.imooc.com/video/13101 链接: https://pan.baidu.com/s/1miQmmQs 密码: gxd2   2 postman 操作历史 接口地址/请求方式 返回数据 自动反复测试一个需要...
  • 一:本机wampserver运行目录下创建一个文件 二:写Curl请求 三:进行模拟请求测试 四:修改请求的参数和API 代码截图展示: 请求地址: 简易页面展示: 处理参数数据: ...本地API接口测试连。 ...
  • 一个基于Thinkphp5+phpQuery 网络爬虫抓取数据接口 统一输出接口数据api.适合正在学习Vue,AngularJs框架学习 开发demo,需要接口并保证接口不跨域的问题,新闻分类(头条/军事/娱乐/体育/科技/艺术/教育/要闻)数据接口...
  • 今天闲着没吊事,来写一篇关于怎么抓取Android中的app数据包?工欲行其事,必先利其器,上网google了一下,发现了一款神器:Fiddler,这个貌似是所有软件开发者必备神器呀!这款工具不仅可以抓取PC上开发web时候的...
  • 开发APP时,我们老是烦恼于没有数据,下面我将使用Fiddler软件抓取手机某个App的API接口(以“锤子阅读”App为例)0、下载并安装Fiddler软件:https://www.telerik.com/download/fiddler1、启动Fiddler,开始设置。...
  • 使用百度统计API接口抓取数据

    千次阅读 2018-09-12 01:04:41
    获取TOKEN,下载Tongji API Demo后解压,可以看到有10个文件。我们需要配置的有4个文件。分别是 Config.inc.php define(‘USERNAME’, ‘您的账号’);  define(‘PASSWORD’, ‘你的密码’);  define(...
  • 高德api接口地址:https://lbs.amap.com/api/webservice/guide/api/search 如果不是高德开发者可以申请为开发者 第一步,申请”Web服务API”密钥(Key); 第二步,拼接HTTP请求URL,第一步申请的Key需作为必填...
  • -Api项目地址:jokermonn/-Api 简介:笔者抓取一些 App 的 Api 接口,仅供学习使用,不得商业用途。侵删更多:作者 提 Bug 标签:Api-接口-以下所有 API 均由产品公司自身提供,本人皆从网络获取。获取与共享之...
  • 1、豆瓣开发的API查询接口(GET类型的接口):https://api.douban.com/v2/book/search?q='' 2、查询“挪威的森林”,使用Fiddler进行抓包 3、如上图我们可以看到,抓到了一个JSON的包, A、HTTP响应状态是200...
  • 一、item_get-获得JD商品详情接口爬虫抓取解决方案 ...二、建议使用场景 1、获得商品详情接口 2、获取商品详情页数据SKU等信息 ...api_name String 是 API接口名称(包括在请求地址中)[item_search,item_get
  • Api-网页截图及TDK抓取接口详情

    热门讨论 2021-01-22 11:43:06
    Api-网页截图及TDK抓取接口详情 接口简介: 提供网址及生成高清网站图片,准确抓取网站标题,关键词,描述三要素。 子接口: 网页截图URL提交 截图进度查询 获取网页TDK截图结果 接口地址: https://登录后显示/api/...
  • 前提安装:Python3 安装第三方库:pip3 install urllib3; pip3 install BeautifulSoup4; pip3 install bottle import urllib.request  import json ...from bottle import route, run, re
  • 下午本来准备抓取些网页视频地址,做一个小的视频app,用来学习ijkplayer,无意中发现了一个app——姐夫酷,这是一个很简单的网页,它也有相应的一个比较简单的android app。 于是心血来潮,想把它的包抓取下来,...
  • 但是这些在线播放器,如百度,酷狗,酷我等在线音乐播放器,是不会提供他们的数据库接口的,所以这个我们需要,在线抓取这些在线音乐播放器的接口,首先,这个事情,是属于违规的。是属于侵犯这些公司的版权的。所以...
  • 我曾经用VB做了个工具,抓取城市间距离(参见:从网页抓取城市间的距离),现在看来,那个工具还是比较low的,用浏览器控件,模拟点击过程,再在响应中截取距离,后来还利用这个方法做了几个其它工具。在掌握了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 683
精华内容 273
关键字:

抓取api接口