怎样修改Response中的内容
重写Stream
public class CatchTextStream : Stream
{
private Stream output;
public CatchTextStream(Stream s)
{
output = s;
}
public override bool CanRead
{
get { return output.CanRead; }
} public override bool CanSeek
{
get { return output.CanSeek; }
} public override bool CanWrite
{
get { return output.CanWrite; }
} public override void Flush()
{
output.Flush();
} public override long Length
{
get { return output.Length; }
} public override long Position
{
get { return output.Position; }
set { output.Position = value; }
} public override int Read(byte[] buffer, int offset, int count)
{
return output.Read(buffer, offset, count);
} public override long Seek(long offset, SeekOrigin origin)
{
return output.Seek(offset, origin);
} public override void SetLength(long value)
{
output.SetLength(value);
} public override void Write(byte[] buffer, int offset, int count)
{
StringComparison ignore = StringComparison.CurrentCultureIgnoreCase;
if (HttpContext.Current != null)
{
HttpContext context = HttpContext.Current;
if (context.Response.ContentType.Equals("text/html", ignore))
{
Encoding encoding = context.Response.ContentEncoding; string html = encoding.GetString(buffer, offset, count);
//在这里可以用你熟悉的方法修改html
byte[] bytes = encoding.GetBytes(html);
output.Write(bytes, , bytes.Length);
}
else
output.Write(buffer, offset, count);
}
}
}
然后把Response的Stream给换掉,偷梁换柱,哈哈……
CatchTextStream responseStream = new CatchTextStream(Response.Filter);
Response.Filter = responseStream;
为什么Response的Stream不能读呢?
这样就不行New StreamReader(Response.Filter);运行时报错,还请大家指点
怎样修改Response中的内容的更多相关文章
- Java中如何修改Jar中的内容
一.摘要 好长时间没写blog了,之前换了一家公司.表示工作更有战斗力了,可惜就是没时间写文章了.在这段时间其实是遇到很多问题的,只是都是记录下来,并没有花时间去研究解决.但是这周遇到这个问题没办法让 ...
- SVNKIT的low api应用之修改库中文件内容(File modification)
最近在做一个仓库管理系统,架构在svn之上.要求每一项操作要记录在log文件中,弄了很久起初感觉无法向库中的文本文件添加东西,就是修改库中的文本文件.于是采用了一个很笨的办法: 现将库中的log ...
- python 修改文件中的内容
在python的文件操作中,是没有办法对文件中具体某行或者某个位置的内容进行局部的修改的,如果需要对文件的某一行内容进行修改,可以先将文件中的所有的内容全部读取出来,再进行内容判断,是否是需要修改的内 ...
- Linux shell 执行修改配置文件中的内容
在开发的过程中可能Linux环境不一致需要适应本地环境的HOME目录,可以通过脚本来修改配置文件内容,写一个test.sh的脚本 在脚本里写入以下命令 sed -i “s#ftfts_com_serv ...
- JavaScript修改表中的内容
例子: <?php ?> <html> <head> <meta http-equiv="Content-Type" content=&q ...
- 修改String中的内容
例子:有一个字符串"abcdef",现在想让字符串中的字符各自加1,求修改后的字符 String 在Java中是不可修改的. 方法1:将String 变为字符数组,通过修改字符数组 ...
- python文件操作-修改文件中的内容
一.文件读写有缓冲区 fw = open('nhy','w') fw.write('sdfsdf') fw.flush()# 把缓冲区里面的数据立即写到磁盘上 fw.close() 二.with的用法 ...
- 反编译DLL并修改DLL中的内容
使用场景:针对当前用户因不愿意进行软件版本升级,但又希望可以解决当前问题,此时可以考虑通过反编辑DLL进行修改内容,然后重新生成新的DLL 操作步骤: 1.首先使用ILSpy.exe反编译DLL,查看 ...
- 修改数据库中的内容报错:PropertyAccessException:Null value was assinged to a property of primitive type setter of
错误原因:totalTime的类型为int,数据库中为NULL,int 类型不能赋值为NULL,只能为0,所以报此异常. 解决方案:将totalTime的类型改为Integer,或者初始化为0
随机推荐
- java中的异常和处理
算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeAr ...
- cf731E
题意:一个游戏,由n张贴纸组成.贴纸排成一排,并且纸条上标有数字,玩家轮流揭下m张从左到右连续的纸条(m大等2),揭下后玩家得分累加这些纸条的sum,并且在剩下纸条最左边贴上新的纸条,数值为揭下纸条的 ...
- 解析网络json数据,模拟美团界面显示。
<?xml version="1.0" encoding="UTF-8"?> <RelativeLayout xmlns:android=&q ...
- 【工具推荐】ELMAH——可插拔错误日志工具
今天看到一篇文章(构建ASP.NET网站十大必备工具(2)),里面介绍了一个ELMAH的错误日志工具,于是研究了一下. ELMAH 是 Error Logging Modules and Handle ...
- [Jquery]导航菜单效果-纵向
$( document ).ready( function(e){ var $catCont = $( ".cat-cont" ); //二级菜单div var $ca ...
- [Js]滑动门效果
描述:鼠标移动到一副图片上,会显示该副图片的全貌,而其他图片会显示概貌 一.没有动画效果的运动 思路: 1.定好每张图片的初始位置(第一张完全显示,234只露出一部分) 2.计算每道门的移动距离(即未 ...
- Phonegap hello world 不容易啊~!
今天一个项目要用phonegap,当初就是觉得phonegap配置太tmd的麻烦了,所以转头appcan,但今天项目必须用-- 先是看到官方说用nodejs装,tmd的,总是重复同一个错误,安装不起, ...
- (DFS)hdoj1175:连连看
题目链接 这道题被稍微改编当作过去年的期末上机题,也被直接放到了这次这一届的第二次练习赛.当初刚看到这道题时DFS并没有系统的学过,做起来极其费劲.现在学过之后开始实践练习,发现这道题真的是很水. 我 ...
- C语言基础--while循环
while循环格式: while (条件表达式) { 语句; ... } 执行说明: while是对给定的条件进行判断, 如果条件满足, 就执行while后面大括号中的内容, 执行完毕之后会再次判 ...
- android 判断网络是否连接
package com.liucanwen.baidulocation.util; import android.app.Activity; import android.content.Contex ...