做过测试的应该都知道Fiddler,它可以很方便截取Internet上的网页替换成本地的,或者修改其中的一部分内容后呈现。简单地说就是可能监测所有HTTP连接,设置断点,胡乱修改。是测试调试的一件利器。
使用Fiddler的开放组件,我们可以将其集成到自己的程序中,如生成flash/silverlight所需要的crossdomain.xml,clientaccesspolicy.xml安全文件等:
Fiddler的API: http://www.fiddler2.com/fiddler/dev/ScriptSamples.asp

下面是一个小例子:自动生成所有的silverlight安全策略文件:

using System;
using Fiddler;

namespace AccessPolicyTool
{
    class Program
    {
        const string PolicyXml = @"<?xml version=""1.0"" encoding=""utf-8""?>
<access-policy>
    <cross-domain-access>
        <policy>
            <allow-from http-request-headers=""*"">
                <domain uri=""http://*""/>
            </allow-from>
            <grant-to>
                <resource path=""/"" include-subpaths=""true""/>
            </grant-to>
        </policy>
    </cross-domain-access>
</access-policy>";

//find and replace the client access policy file.
        static void Main(string[] args)
        {
            //List<Fiddler.Session> oAllSessions = new List<Fiddler.Session>();

Fiddler.FiddlerApplication.BeforeRequest += new SessionStateHandler(FiddlerApplication_BeforeRequest);
            Fiddler.FiddlerApplication.BeforeResponse += new Fiddler.SessionStateHandler(FiddlerApplication_BeforeResponse);

Fiddler.FiddlerApplication.Startup(8877, FiddlerCoreStartupFlags.Default);
            Console.ReadKey();
            Fiddler.FiddlerApplication.Shutdown();
        }

static void FiddlerApplication_BeforeRequest(Session oSession)
        {
            Console.WriteLine("FiddlerApplication_BeforeRequest");

if (oSession.fullUrl.IndexOf("clientaccesspolicy.xml") > 0)
            {
                oSession.bBufferResponse = true;
            }
        }

//find and replace the client access policy file.
        static void FiddlerApplication_BeforeResponse(Fiddler.Session oSession)
        {
            if (oSession.fullUrl.IndexOf("clientaccesspolicy.xml") > 0)
            {
                Console.WriteLine(oSession.fullUrl);

oSession.utilDecodeResponse();
                oSession.utilSetResponseBody(PolicyXml);

oSession.oResponse.headers.HTTPResponseCode = 200;
                oSession.oResponse.headers.HTTPResponseStatus = "200 OK";
                oSession.oResponse.headers["Content-Type"] = "text/xml";
                oSession.oResponse.headers.Remove("WWW-Authenticate");
            }
        }
    }
}

FiddlerCore 修改HTTP返回结果

发了封邮件给官网,问题解决了。 
在BeforeRequest事件中设置Session.bBufferResponse = true 就可以了。

使用FiddlerCore来截取替换Http请求中的网页内容相关推荐

  1. nginx 替换返回请求中的字符

    nginx学习sub_filter模块 location / {root /opt/app/code/;random_index on;index index.html index.htm;sub_f ...

  2. 正则匹配不包含某字符串_如何替换JS字符串中匹配到多处中某一指定节点?

    来源 | https://www.cnblogs.com/class1/p/14273231.html 问题先行,要求搜索关键字,匹配到四处,那我鼠标放在第二处,我想把它变个颜色,该怎么实现呢?截图如 ...

  3. Logback 快速定位用户在一次请求中的所有日志

    问题描述 最近经常做线上问题的排查,而排查问题用得最多的方式是查看日志,但是在现有系统中,各种无关日志穿行其中,导致我没办法快速的找出用户在一次请求中所有的日志. 问题分析 我们没办法快速定位用户在一 ...

  4. linux 变量替换字符串,shell中常用的变量处理、字符串操作(之一)

    在shell中,当我们已经获取到某个变量的变量值的时候,可能还需要对变量值进行一定的处理,才能到我们最终想要的结果,今天我们就来聊聊shell中常见的变量处理方法,我们通常会对变量进行如下处理. 一. ...

  5. 字符串 匹配首尾字符串 java_java Matcher匹配头尾截取替换字符串的案例

    在java 编程中,我们常常有这样的需求:需要将一段字符串内的特定字符串,按照一定规则查找出来或替换,比如匹配文本开头规则和结束规则. 以下就是Matcher的使用: import java.util ...

  6. 有属性的自定义注解,如何获取到post请求中RequestBody中对象的一个属性值?

    1,写两个自定义注解,一个作用于方法的,一个作用于字段的 作用于方法的自定义注解代码: package com.youku.nintendo.annotation;import enums.Permi ...

  7. 接口请求中post与put的区别

    RESTful API RESTful API是一种Web API的设计风格和开发方式,它遵循一组约束和属性,其中最重要的是客户端和服务器之间的无状态通信.在RESTful API中,资源通过URI进 ...

  8. 【2012百度之星/资格赛】H:用户请求中的品牌 [后缀数组]

    时间限制: 1000ms 内存限制: 65536kB 描述 馅饼同学是一个在百度工作,做用户请求(query)分析的同学,他在用户请求中经常会遇到一些很奇葩的词汇.在比方说"johnsonj ...

  9. postman简单教程,如何在请求中引用上次请求返回的值

    做接口测试,一定会遇到这种情况,需要拿上次请求的值在本次请求中使用,比如,我们去测试一个东西,要去登录才能做其他的操作,需要拿到登录返回数据中的某些字段,比如,token啊等... 如果发一次请求,就 ...

最新文章

  1. Java学习--多态
  2. 部署RocketMQ的管理工具
  3. njx如何实现负载均衡_使用Nginx实现负载均衡
  4. 怎么去掉网页上复制到word的文章中各种符号例如向下箭头(↓)?
  5. 剑指Offer之两个链表的第一个公共节点
  6. centos7远程访问mysql数据库_CentOS7下安装mysql最快捷方式及mysql远程访问连接实现详解...
  7. 平均值(Mean)、方差(Variance)、标准差(Standard Deviation)
  8. spring3: 依赖和依赖注入-xml配置-DI的配置
  9. c#进度条刻度_自定义滑动刻度进度条
  10. GPM、FY-4A数据下载
  11. ps里面怎么插入流程图_教你如何正确画工艺流程图
  12. 程序员的表白文,加点不一样的料!
  13. win10清理_卸载全家桶之后:用win10自带杀软,怎么清理电脑垃圾?
  14. (已解决)ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.
  15. js对数组的删除操作
  16. 一分钟自我介绍怎么说才精彩
  17. RabbitMQ在特来电的深度应用
  18. C#高效编程 改进C#代码的50个行之有效的办法(第2版)
  19. Gibbs抽样方法详解
  20. 车易加加油抵扣卡_油价又要涨啦,预测上调红线将被冲破

热门文章

  1. android源码的目录
  2. Linux下如何使用虚拟用户增加FTP的安全性
  3. 统计学习方法|支持向量机(SVM)原理剖析及实现
  4. 百度怎么进行模糊搜索_百度搜索竞价推广效果怎么样?
  5. 剑指offer 算法 (分解让复杂问题简单)
  6. Android开发之适配器-ListView适配器的重复数据
  7. 还珠格格里的尔泰,重现娱乐圈
  8. Vijos P1131 最小公倍数和最大公约数问题【暴力】
  9. 开源 java CMS - FreeCMS2.3员
  10. Unity开发NGUI代码实现ScrollView(放大视图)