16,555
社区成员
发帖
与我相关
我的任务
分享
Public Function httpsend_getGB2312(ByVal geturl As String) As String
Dim myHttpWebRequest As System.Net.HttpWebRequest
Dim myHttpWebResponse As System.Net.HttpWebResponse
Try
Dim URL As String = geturl
'Dim myUri As Uri = New Uri(geturl)
Dim myWebRequest As System.Net.WebRequest = System.Net.WebRequest.Create(URL)
myHttpWebRequest = CType(myWebRequest, System.Net.HttpWebRequest)
myHttpWebRequest.KeepAlive = True
myHttpWebRequest.Timeout = 300000
myHttpWebRequest.Method = "GET"
' myHttpWebRequest.ContentType = "text/html; charset=gb2312"
Dim myWebResponse As System.Net.WebResponse = myHttpWebRequest.GetResponse()
'获得响应信息
myHttpWebResponse = CType(myWebResponse, System.Net.HttpWebResponse)
Dim iStatCode As Integer = CInt(myHttpWebResponse.StatusCode)
myHttpWebRequest = CType(myWebRequest, System.Net.HttpWebRequest)
myHttpWebResponse = CType(myWebResponse, System.Net.HttpWebResponse)
Dim myStream As System.IO.Stream = myHttpWebResponse.GetResponseStream()
'Dim htmlCharset As String = "GBK"
Dim htmlEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding(936)
Dim srReader As System.IO.StreamReader = New System.IO.StreamReader(myStream, htmlEncoding)
Dim sTemp As String = srReader.ReadToEnd()
httpsend_getGB2312 = sTemp
' httpsend_get = UTF82Unicode(sTemp)
srReader.Close()
myStream.Close()
myWebResponse.Close()
myWebRequest.Abort()
Catch WebExcp As System.Net.WebException
'Response.Write(Replace(WebExcp.Message.ToString(), "The remote server returned an error: (500) Internal Server Error.", "服务器出现故障无法连接"))
httpsend_getGB2312 = Replace(WebExcp.Message.ToString(), "The remote server returned an error: (500) Internal Server Error.", "服务器出现故障无法连接")
Catch ex As Exception
'Response.Write(ex.ToString())
httpsend_getGB2312 = ex.ToString
End Try
End Function
Dim htmlEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding(936)
Dim srReader As System.IO.StreamReader = New System.IO.StreamReader(myStream, htmlEncoding)
myHttpWebRequest.Headers.Add("Accept-Encoding", "gzip, deflate")
myWebResponse.Headers.Set("Content-Encoding", "gzip")
Dim htmlEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("gb2312")
Dim myGzipStream As GZipStream = New GZipStream(myStream, CompressionMode.Decompress)
Dim srReader As System.IO.StreamReader = New System.IO.StreamReader(myGzipStream, htmlEncoding)
成功过两次,后来又报错
The magic number in GZip header is not correct. Make sure you are passing in。。。
Dim htmlEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8")
Dim srReader As System.IO.StreamReader = New System.IO.StreamReader(myStream, htmlEncoding)
对于UTF-8的网站没问题
Dim htmlEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("gb2312")
Dim srReader As System.IO.StreamReader = New System.IO.StreamReader(myStream, htmlEncoding)
一模一样的程序,换成gb2312的网站就不行了