using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO ; using System.Text.RegularExpressions; namespace BasicCompent { public class PageResponseFilter:Stream { private Stream mSink; private long mPosition; Encoding responseCoding; public PageResponseFilter(Stream sink, Encoding coding) { mSink = sink; responseCoding = coding; } public override bool CanRead { get { return true; } } public override bool CanSeek { get { return false; } } public override bool CanWrite { get { return false; } } public override long Length { get { return 0; } } public override long Position { get { return mPosition; } set { mPosition = value; } } public override long Seek(long offset, SeekOrigin origin) { return 0; } public override void SetLength(long value) { mSink.SetLength(value); } public override void Close() { mSink.Close(); } public override void Flush() { mSink.Flush(); } public override int Read(byte[] buffer, int offset, int count) { return mSink.Read(buffer, offset, count); } public override void Write(byte[] buffer, int offset, int count) { string pubString = responseCoding.GetString(buffer, offset, count); int fIndx = pubString.IndexOf("<body>", 0, StringComparison.OrdinalIgnoreCase); if (fIndx != -1) { pubString = pubString.Insert(fIndx + 6, "<!---------测试用的---------//>"); } byte[] res = responseCoding.GetBytes(pubString); mSink.Write(res, 0, res.Length); } } }
转载于:https://www.cnblogs.com/dhz123/archive/2008/07/08/2194304.html