前言

博主JAVA开发工程师一枚。
最近两年工作基本上都是前后端分离~

之前做电商项目,版本开发过程中,App开发同事(安卓/IOS)都会打一个测试包给我们,对自己开发的那部分接口进行自测。然而,App调试不同于Web开发,打开F12,就能看到每一个请求的详细信息(接口名,参数,响应),所以需要通过抓包,进行调试。

常用的抓包工具有FiddlerCharles两种

编辑Fiddler的FiddlerScript脚本,代理请求到本地

使用场景
实际抓包调试过程中,因为手机安装的app调用的接口都是测试环境的,现在为了安全,一般都是https请求。那么,如果要调试我们本地的接口,可以编辑Fiddler的FiddlerScript脚本,新增rule,替换对应的请求url。

例如:https://dev.aliyun.cn/core 替换成 http://127.0.0.1:8080/core,
https://dev.aliyun.cn/pay 替换成 http://127.0.0.1:8081/pay ,从而访问到我们本地

我们只要一小段 FiddlerScript 代码就能完成此功能:

// 自定义规则:if (oSession.isHTTPS && oSession.HostnameIs("ops.qncloud.cn")) {// 将https 替换为 httpoSession.oRequest.headers.UriScheme = "http";// 替换链接(部分替换,这里将域名替换为127.0.0.1:8081if (oSession.url.IndexOf('ops.qncloud.cn/sdm')>-1) {oSession.url = oSession.url.Replace('dev.aliyun.cn/pay', '127.0.0.1:8081/pay');  }if (oSession.url.IndexOf('ops.qncloud.cn/helpdesk')>-1) {oSession.url = oSession.url.Replace('dev.aliyun.cn/core', '127.0.0.1:8080/core');}}

添加的位置:在 FiddlerScript 标签里搜索 OnBeforeRequest 方法,加到最上面即可:

记得在 Options -> HTTPS 里选中 Decrypt HTTPS traffic。并且修改之后,一定要点一下Save Script 按钮才会生效

重新操作app,看看有没有访问到本地???


下面博主只做记录,读者不必阅读!!!

原理

简单讲,Fiddler相当于一个代理,当客户端发送 http/https请求 给服务器的时候,Fiddler 拦截到请求,我们可以对请求的相关数据进行自定义(如更改请求参数,请求url等),然后Fiddler按照我们自定义的形式去请求服务器,最后把服务器的响应返回给客户端。

这整个过程就叫抓包。我们可以分析抓包得到的数据,进行调试。

了解了Fiddler大致的工作流程,接下来,本篇博客后面部分主要介绍对IOS进行抓包(转载其他博客)


Fiddler的安装和配置,网上教程很多,我这里就不再重复码字了,转载一篇写得很详细的博客,如下:

以下内容均为转载,原文博客地址:使用Fiddler进行iOS APP的HTTP/HTTPS抓包

拦截指定链接,过滤指定链接:Fiddler简单使用教程

一、PC上安装Fiddler

步骤略。

二、Fiddler配置(配置完后记得要重启Fiddler)

打开Fiddler, Tools-> Fiddler Options 。
选中"Decrpt HTTPS traffic",Fiddler就可以截获HTTPS请求
选中"Allow remote computers to connect".是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来

三、手机配置

(1) 网络代理设置
安装Fiddler的机器,跟iPhone 必须在同一个网络里, 否则iPhone不能把HTTP发送到Fiddler的机器上来。一般情况,我们手头上是台式机和手机,台式机只有网线,没有无线wifi,所以和手机不在同一个网络,这时,我们就需要设置代理了
打开iPhone, 找到你的网络连接, 打开HTTP代理, 输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口号8888

(2) Fiddler证书安装
这一步是为了让Fiddler能捕获HTTPS请求。 如果你只需要截获HTTP请求, 可以忽略这一步

  1. 首先要知道Fiddler所在的机器的IP地址: 假如我安装了Fiddler的机器的IP地址是:192.168.1.104
  2. 打开IPhone 的Safari, 访问 http://192.168.1.104:8888, 点"FiddlerRoot certificate" 然后安装证书
    现在大功告成,可以抓包了。iPhone上的应用(比如Safari, Firefox, Itunes, App Store)发出的HTTP/HTTPS都可以被Fiddler获取。

实例:打开Safari,
3. 输入http://www.cnblogs.com/tankxiao. 看看Fiddler能否捕获。
4. 输入https://dynamic.12306.cn/otsweb/ 看看Fiddler能否捕获。
是不是HTTP和HTTPS都截获到了?, 你不但能截获, 还可以下断点,修改Request, 修改Response, Do what you want.
四、注意事项
(1)用完了, 记得把IPhone上的Fiddler代理关闭, 以免IPhone上不了网。
(2)只能捕获HTTP,而不能捕获HTTPS的解决办法
有时候会发现, Fiddler 只能捕获IPhone发出得HTTP请求, 而不能捕获HTTPS请求, 原因可能是证书没有安装好。 解决办法是:
5. 先把IPhone上所有的Fiddler证书删除 (拿出IPhone, 点”设置“->“通用”->“描述文件”)
6. 安装上面的方法,重新安装Fiddler证书


其他操作:

左下角黑色命令行:
语法:
替换:urlreplace www.demo.com www.dev.demo.com (注意,只能替换一种规则,且替换的链接中不能带http:)
清除:urlreplace

编辑Fiddler的FiddlerScript脚本,代理请求到本地相关推荐

  1. Iphone8 plus Fiddler 抓包App Https 请求时的坑

    1 背景 手机APP 发送中文到后端乱码,排查原始报文乱码,还是接收后字符转换导致的乱码. 2 证书问题 有的app 应用对证书做了验证.所以当配置好抓包后,手机浏览器不能打开,使用抓包时,Fiddl ...

  2. Jmeter系列之Fiddler导出Jmeter脚本

    VOL 170 29 2020-10 今天距2021年63天 这是ITester软件测试小栈第170次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...

  3. Tomcat高级部分-使用特定模块和软件反向代理请求到后端tomcat实现负载均衡和session保持...

    实验目标: 1.反向代理服务器将用户请求负载均衡到后端tomcat节点: 2.配置基于nginx的负载均衡,实现会话绑定: 3.配置基于mod_jk的负载均衡,实现会话绑定: 4.基于mod_prox ...

  4. LR脚本录制3——Fiddler生成LR脚本(推荐)

    1.1LoadRunner11.0        好处:可破解,破解后能支持几百几千个虚拟并发:        缺点:对浏览器支持范围很小,ie.谷歌.火狐浏览器都只能用很低的版本,而现在的系统在低版 ...

  5. fiddler为手机设置代理(有待完善)

    fiddler为手机设置代理,需要分别对pc端的fiddler.手机端进行设置 注意事项:PC端必须和手机使用同一个局域网,且手机端要下载证书                         手机端i ...

  6. Fiddler导出JMeter脚本插件原理

             目录 一.Fiddler导出JMeter脚本插件原理 二.Fiddler导出JMeter脚本插件的基本使用 结语 一.Fiddler导出JMeter脚本插件原理 既然JMeter本质 ...

  7. Jmeter录制脚本fiddler fiddler录制jmeter脚本

    jmeter录制脚本有多种方法,例如badboy.fiddler.jmeter自带的等. fiddler录制 jmx 脚本 fiddler安装使用请自行百度. 分享自己使用的插件及fiddler: 链 ...

  8. fiddler监控手机端https请求显示tunnel to ......443

    常规fiddler监控操作设置完之后,如果发现仍然显示tunnel to ......443,可以按如下方式尝试. 1.添加如下文件res/xml/network_security_config.xm ...

  9. 【Python笔记_2】使用urllib库发送付费代理请求方式

    import urllib.request# 需求点如下: # 付费的代理发送 # 有用户密码的情况 # 通过验证的处理器来发送def money_proxy_use():# 第一种方式付费代理方式发 ...

最新文章

  1. 自动驾驶是人工智能在交通领域最彻底的应用
  2. 【知识小课堂】4 之 索引
  3. Android项目实战视频教程_快递轨迹查询应用开发
  4. LeetCode MySQL 1179. 重新格式化部门表
  5. linux的基础知识——信号的概念
  6. 购物车的数据应该保存在哪?
  7. 准备好钱了吗?新款iPhone或于9月13日开始接受预订
  8. group by后可以join吗_去韩国留学毕业后可以留在韩国吗
  9. prd移动端通用产品需求文档+Axure高保真app社交订餐通用prd文档+产品业务说明+PRD功能性需求+移动端公工通用模板说明+需求分析+竞品分析+产品结构图+产品业务流程图+产品信息图+餐饮系统
  10. ES6 将数组根据某个属性进行分组的方法
  11. php生成成语,在线成语词典 洪恩在线成语词典小偷程序php版
  12. STM32F103+RTT从零开始(二)——RTT系统中点亮LED
  13. python抓取彩票数据_编写python爬虫采集彩票网站数据,将数据写入mongodb数据库...
  14. Linux系统命令(网络通信)
  15. 银河麒麟系统使用方法
  16. android怎么加矩形框,Android shape 矩形框子
  17. MUI tabbar购物车小图标的制作
  18. 在Unity中实现画图/字帖功能
  19. Python语言程序设计------测试题【4】
  20. 真彩色与伪彩色、直接色的区别

热门文章

  1. ORB_SLAM3代码学习(1)
  2. java数组去重方法是,java数组去重的两种方法
  3. Win10电脑鼠标移动的时候会突然卡顿解决方法
  4. CSGO 启动项 个人设置
  5. jsp游戏代练信息网站
  6. 剑网三缘起正在连接服务器,剑网三缘起服务器选择:比起天宝盛世手动服,还是直升服“更香”...
  7. Python实用工具,turtle库,Python实现简易版时钟
  8. 2020 - [Java基础 +多线程 + 虚拟机] + [计网 + 操作系统] + [MySQL] + [Redis] + [RocketMQ] + [Spring]常见面试题与解析
  9. Lifecycle详解
  10. 强化学习笔记:多臂老虎机问题(1)