HTTP抓包利器Fiddler基础及进阶教程(三)---- 修改请求和响应+FiddlerCore使用_.net fiddlercore4_Cubeeeeee的博客-程序员宅基地

技术标签: C#  爬虫  代理IP  .Net  抓包  Python  

本文将进一步介绍Fiddler的进阶功能,修改Http请求或响应,并使用FiddlerCore将其应用在代码当中。

一.修改Http请求

本小节实现的功能是使用Fiddler,将原本访问地址 https://blog.csdn.net/qq_26712977 的请求修改为访问https://blog.csdn.net/cocos2der。
以火狐浏览器为例,正常情况下访问我的博客列表页如下图:
在这里插入图片描述
而修改的目标页面为:
在这里插入图片描述

1.为Fiddler设置请求断点

在菜单栏中依次点击 Rules->Automatic Breakpionts->Before Requests 即在请求发起前自动断点
在这里插入图片描述

2.触发请求并查看断点

在这里插入图片描述

3.修改请求并继续执行请求

修改完毕后,点击Go按钮继续执行,由于自动断点会对所有请求都生效,所以修改完毕后可以先把自动断点去掉,回到浏览器页面可以看到请求的页面已经呗修改,下面用一个Gif图来说明

在这里插入图片描述

二.修改Http响应

还是以原地址为例,下面将响应的内容修改。将页面中的"射线网络"修改为" nbraynet"
在这里插入图片描述

1.为Fiddler设置响应断点

在菜单栏中依次点击 Rules->Automatic Breakpionts->Before Responses 即在响应前自动断点
在这里插入图片描述

2.触发响应,查看断点并修改响应

在这里插入图片描述

3.最终效果在这里插入图片描述

4.Gif演示

在这里插入图片描述

效果和前端审查元素一样,不同的是Fiddler在请求响应之前就修改了

三.FiddlerCore代码实现

FiddlerCore是Fiddler官方提供的DLL类库,封装了Fiddler一系列API,使用此类库可以在代码中实现以上及更多的功能


            //在发送请求之前执行的操作  
            Fiddler.FiddlerApplication.BeforeRequest += delegate (Fiddler.Session oS)
            {
                if (checkBox1.Checked)
                {
                    //实现修改请求目标的功能
                    if (oS.fullUrl.Contains("https://blog.csdn.net/qq_26712977"))
                    {
                        oS.fullUrl = "https://blog.csdn.net/cocos2der";
                    }
                }
            };

最终效果
在这里插入图片描述

关注公众号 “射线网络” 回复 “FiddlerCore” 即可获得本文Demo项目源码

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_26712977/article/details/94197606

智能推荐

vue项目中 五小一大六宫格拖拽排序,6宫格拖拽换位,矩阵拖拽排序_vue宫格拖拽排序布局_随便起的名字也被占用的博客-程序员宅基地

背景:项目中用到1、4、6、9、12、16宫格排序,拖拽换位等场景,项目是监控的视频矩阵,用户矩阵拖拽排序换位,之前已经实现1、4、9、12、16等矩阵式排列的拖拽排序,但是六宫格要求五小一大,之前的基于vue-grid-layout开发的拖拽对换位置已经实现除了五小一大的需求图:五小一大互相可以拖拽换位排序实现方案:基于vue-dragginghttps://github.com/hilongjw/vue-dragging实现六宫格拖拽,该组件也可实现1,4、6、9等需要简单修改即可._vue宫格拖拽排序布局

实体类中的变量与数据库对应表的变量名不一致_自定义实体类变量和数据库对应,_stay hungry,stay you的博客-程序员宅基地

实体类中的变量与数据库对应表的变量名不一致,如果sql 中没有添加别名, 那么会找不到对应的字段, 则会报空指针异常。如果实体类和数据库字段一样则不需要加As<select id="queryUserTest" resultType="com.mybatis.api.mybatis.model.UserAndUserInfoResult"> select b.id,b.my_hobby as hobby,a.user_id as userid,a.user_sex as sex from_自定义实体类变量和数据库对应,

以简书为例,简介尼尔森十大可用性原则_尼尔森十大可用性原则 知乎_延鹏飞飞飞飞的博客-程序员宅基地

转载自http://www.woshipm.com/ucd/110043.html原则一:状态可见原则用户在网页上的任何操作,不论是单击、滚动还是按下键盘,页面应即时给出反馈。「即时」是指,页面响应时间小于用户能忍受的等待时间。案例:简书上每篇文章的底部都会有一个「喜欢」按钮,当把鼠标悬浮上去时,按钮就会由原来的透明状态变成淡粉的填充色,这一过程是瞬间的,这就运用了状态可见原则_尼尔森十大可用性原则 知乎

乒乓球,水题_输入包含若干行字符串(每行至多 20 个字母),字符串由大写的 f、a 和 e 组成。 其_zhouzzz000的博客-程序员宅基地

题目:早期乒乓球比赛采用21分制,目前乒乓球比赛采用11分制,为了研究11分制和21分制对选手的不同影响,需要对选手多年比赛的统计数据进行一些分析。通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。比如现在有这么一份记录,(其中W表示比赛选手张三获得一分,L表示张三的对手获得一分):WWWWWWWWW_输入包含若干行字符串(每行至多 20 个字母),字符串由大写的 f、a 和 e 组成。 其

VSCode中文字体那个最好看_vscode好看的中文字体_fK0pS的博客-程序员宅基地

VSCode中文字体那个最好看https://blog.csdn.net/miyahejuzi/article/details/99608191目前先用微软雅黑吧Consolas, '微软雅黑', monospace_vscode好看的中文字体

Tensorflow ——分布式数据异步并行代码(单机多卡、多机多卡)_单机多卡 tensorflow 代码_Cater Chen的博客-程序员宅基地

Tensorflow ——分布式数据异步并行代码(单机多卡、多机多卡)在分布式计算中创建Session需要用到MonitoredTrainingSession,区别于普通Session最主要的参数是is_chief。Session( target='', graph=None, config=None)MonitoredTrainingSession( master='', is_chief=True, checkpoint_dir=None, sca_单机多卡 tensorflow 代码

随便推点

android学习笔记21:imageview获取网络图片,Android学习笔记21:ImageView获取网络图片..._范米索的博客-程序员宅基地

Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口)、org.apache(Apache接口)和android.net.*(Android网络接口)。本文将使用java.net.*(标准java接口)来实现获取一张网络图片,并将其显示在ImageView控件中。java.net.*(标准java接口)提供了与网络有关的类,包括流和数据包套接字、Intern..._android imageview如何使用线上图片

锁表处理 SQL 错误: ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效_小潘979的博客-程序员宅基地

问题描述有时候ORACLE数据的某些表由于频繁操作,而且比较大,会导致锁表。问题分析1、锁的分析ORACLE里锁有以下几种模式:0:none1:null 空2:Row-S 行共享(RS):共享表锁,sub share3:Row-X 行独占(RX):用于行的修改,sub exclusive4:Share 共享锁(S):阻止其他DML操作,share5:S/Row-X 共享行独占(...

php laravel wherehas,Laravel Eloquent whereHas 的一个优化_流心奶黄月饼的博客-程序员宅基地

用 Laravel 很久了,whereHas 简直是连表大杀器,本来需要写大量 SQL 的查询用 whereHas 都可以很快的实现。不过在一些场景里,遇到了严重的性能问题。我们有个A表,大约是百万级数据,与之关联的有个B表,大约万级数据。在做关联查询的时候我们自然使用 A::whereHas('b', function(){...}) 。后来发现了许多慢查询,仔细一看发现,Laravel 的 ..._laravel wherehas

CPU虚拟化技术_7B_coder的博客-程序员宅基地

基本概念:物理CPU数量:实际服务器插槽上的CPU个数; 核:一块CPU上面能处理数据的芯片组的数量; 超线程:在一个实体芯片组中提供两个逻辑线程; 逻辑CPU数量:物理CPU数量*核*超线程(若支持超线程,该值为2); vCPU:虚机分配的CPU,一个服务器或集群可分配的vCPU数量为为 (逻辑CPU数量 - (控制台需要的逻辑cpu数量))× 虚拟化比例因子(考虑过载,预估为1.2~1.5)1. 为什么需要 CPU 虚拟化X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动_cpu虚拟化

tms320f28027 中断优先级_TMS320F28027 自带串口中断收发数据例子-程序员宅基地

【实例简介】TMS320F28027自带有串口,利用串口中断与上位机(电脑)进行数据交换,软件设置成 上位机所发数据要以‘*’结束。仅供DSP板的学习所用,软件用的是CCS4.1,编译如果不能通过,就把工程存放目录名中的汉字去掉!【实例截图】【核心代码】DSP└── DSP├── DSP2802x_common│ ├── cmd│ │ ├── 280200_RAM_lnk.cmd│...

招聘_333sunshine的博客-程序员宅基地

PHP程序员 基本要求:能出活、能吃苦。学历、性别、年龄、专业……都不是考虑因素。 具体要求:熟悉PHP、MySQL,初学者勿扰。熟悉JavaScript、AJAX、WordPress、Joomla……可以加分。英文还可以的也可以加分。 网站美工 要求很简单:有创意,能出活,能吃苦。学历、性别、年龄、专业……都不是考虑因素。 具体的要求是熟悉网站美工(初学者勿扰)的相关技术,例如(X