httpmodule通过httpfilter获取返回的网页内容
2014-07-17 19:15
435 查看
自定义httpmodule里面:
public virtual void Init(HttpApplication app) { // WARNING! This does not work with Windows authentication! // If you are using Windows authentication, change to app.BeginRequest app.BeginRequest += (sender, e) => { app.Context.Response.Filter = new CatchTextStream(app.Response.Filter); }; }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;
//此处获取返回的HTML内容
string html = encoding.GetString(buffer, offset, count);
byte[] bytes = encoding.GetBytes(html);
output.Write(bytes, 0, bytes.Length);
}
else
output.Write(buffer, offset, count);
}
}
}
相关文章推荐
- 通过socket 获取GET返回数据后的操作 分割报文头和网页内容
- 在oracle中通过utl_http获得指定网页内容
- 利用HttpWebRequest获取网页内容,由于Gzip压缩导致乱码的情况
- C#通过http Get方式获取返回页中的XML
- telnet建立http连接获取网页HTML内容
- WebClient位于System.Net命名空间下,通过这个类可以方便的创建Http请求并获取返回内容。
- Java基础:利用HttpClient获取网页内容
- C#用HttpWebRequest通过代理服务器验证后抓取网页内容
- vbs+xmlhttp获取网页内容
- HttpClient 获取网页内容
- Flex: 抓取网页,通过 XML 获取部分内容
- 转:VC通过HTTP方式获取网页
- C#用HttpWebRequest通过代理服务器验证后抓取网页内容
- 利用HttpClient获取网页内容
- PHP 通过curl库函数获取网页内容
- C#用HttpWebRequest通过代理服务器验证后抓取网页内容
- C#用HttpWebRequest通过代理服务器验证后抓取网页内容 。。。。。
- Java基础:利用HttpClient获取网页内容
- telnet建立http连接获取网页HTML内容
- http获取网页内容类