c# 人才济济 来问个奇怪的有关问题

c# 人才济济 来问个奇怪的问题
我自己的vb。net的代码 功能是自动识别编码 出问题的地方是
MsgBox(html.ToString) '这里有数据
            encoding = GetEncoding(html) '获取编码
            reader = New StreamReader(readergzip, encoding)
            html = reader.ReadToEnd
            MsgBox(html.ToString) '这里没有数据
  第二个的居然是空的。很头大了 兄弟们有空帮我看看  是什么地方出错了。哎。头大了

Imports System.Net
Imports System.IO
Imports System.Text
Imports System.IO.Compression
Imports System.Text.RegularExpressions

Public Class http_helper
    Public Function GetHtml(ByVal url As String) As String
        Return GetHtml(url, Nothing)
    End Function
    Public Function GetEncoding(ByVal html As String) As Encoding
        Dim pattern As String = "(?is)charset=([""]?)(?<charset>[-a-z-A-Z_0-9]+)([""]?)"
        Dim charset As String = Regex.Match(html, pattern).Groups("charset").Value
        Try
            Return Encoding.GetEncoding(charset)
        Catch generatedExceptionName As ArgumentException
            Return Nothing
        End Try
    End Function

    Public Function GetHtml(ByVal url As String, ByVal encoding As Encoding) As String
        Dim request As HttpWebRequest = Nothing
        Dim response As HttpWebResponse = Nothing
        Dim reader As StreamReader = Nothing
        Dim readergzip As Stream = Nothing
        Dim html As String
        '  Try
        request = CType(WebRequest.Create(url), HttpWebRequest)
        request.Timeout = 20000
        request.Headers.Add("Accept-Encoding", "gzip")
        request.AllowAutoRedirect = False
        request.KeepAlive = True
        request.ReadWriteTimeout = 9999999
        response = CType(request.GetResponse(), HttpWebResponse)
        If response.StatusCode = HttpStatusCode.OK AndAlso response.ContentLength < 1024 * 1024 Then
            If response.ContentEncoding.ToLower.Contains("gzip") Then
                ' reader = New StreamReader(New GZipStream(response.GetResponseStream(), CompressionMode.Decompress), encoding)
                readergzip = New GZipStream(response.GetResponseStream(), CompressionMode.Decompress)
            Else
                readergzip = response.GetResponseStream()
            End If
            If encoding IsNot Nothing Then
                reader = New StreamReader(readergzip, encoding)
                Return reader.ReadToEnd
            End If
            reader = New StreamReader(readergzip, encoding.UTF8)
            html = reader.ReadToEnd
            MsgBox(html.ToString) '这里有数据
            encoding = GetEncoding(html) '获取编码
            reader = New StreamReader(readergzip, encoding)
            html = reader.ReadToEnd
            MsgBox(html.ToString) '这里没有数据