0
我正在使用Response.Filter。我重寫Write方法。但我注意到Write方法執行很多次,並且Write方法中的響應html進入分塊。如何在Write方法中讀取(然後過濾)完整的html。如何讀取Response.Filter.Write方法中的完整HTML?
我正在使用Response.Filter。我重寫Write方法。但我注意到Write方法執行很多次,並且Write方法中的響應html進入分塊。如何在Write方法中讀取(然後過濾)完整的html。如何讀取Response.Filter.Write方法中的完整HTML?
您應該避免這樣做,因爲它可能會對您的網站產生性能影響。過濾器是流,它們是低層次的,並且意味着直接處理響應字節,因此非常適合執行Gzip壓縮等操作。
你應該儘量在理想情況下做大塊過濾操作。如果你真的做不到,你可以寫一個基於MemoryStream
的過濾器。請記住,您將創建一個內存緩衝區,因此請確保您的響應時間相對較短。
public class ReadAllIntoMemoryFilter : MemoryStream
{
private readonly Stream _baseFilter;
public ReadAllIntoMemoryFilter(Stream baseFilter)
{
_baseFilter = baseFilter;
}
public override void Close()
{
var bytes = GetBuffer();
// do your work here
_baseFilter.Write(bytes, 0, bytes.Length);
_baseFilter.Close();
base.Close();
}
}
我明白你在說什麼,但我需要完整的html。謝謝 – user960567 2012-07-23 15:21:56
然後它說'在這裏做你的工作',你需要使用'StreamReader'來對付內存流,將字節轉換爲字符串。編輯字符串並反向執行以轉換爲字節。 – 2012-07-23 15:49:31
好的....................... – user960567 2012-07-24 15:05:32