level 1
mysisaneryi
楼主
本人刚学VB2010,在使用下面这一段VB2010中获取网页title头的函数,在实际使用中,当所请求的网址可以正常打开时,就能正确得到TITLE头,但是当网站打不开时,函数就会出错,出错的地方是“ httpResp = CType(httpReq.GetResponse(), Net.HttpWebResponse)”,请问如何容错?(以http://www.baidu.com和http://www.baidu.net为例,baidu.net就会出错)
Function posthtml(ByVal _URL As String) As String
Dim TitelStart, TitelEnd As Short
Dim TitelTxt As String
Dim url As String = _URL ' 网页地址
Dim httpReq As System.Net.HttpWebRequest
Dim httpResp As System.Net.HttpWebResponse
Dim httpURL As New System.Uri(url)
httpReq = CType(Net.HttpWebRequest.Create(httpURL), Net.HttpWebRequest)
httpReq.Method = "GET"
httpResp = CType(httpReq.GetResponse(), Net.HttpWebResponse)
Dim reader As IO.StreamReader = New IO.StreamReader(httpResp.GetResponseStream)
Dim respHTML As String = reader.ReadToEnd() 'respHTML就是网页源代码
TitelStart = respHTML.IndexOf("<title>") + 7
TitelEnd = respHTML.IndexOf("</title>")
TitelTxt = respHTML.Substring(TitelStart, TitelEnd - TitelStart)
Return TitelTxt
End Function
2014年02月04日 07点02分
1
Function posthtml(ByVal _URL As String) As String
Dim TitelStart, TitelEnd As Short
Dim TitelTxt As String
Dim url As String = _URL ' 网页地址
Dim httpReq As System.Net.HttpWebRequest
Dim httpResp As System.Net.HttpWebResponse
Dim httpURL As New System.Uri(url)
httpReq = CType(Net.HttpWebRequest.Create(httpURL), Net.HttpWebRequest)
httpReq.Method = "GET"
httpResp = CType(httpReq.GetResponse(), Net.HttpWebResponse)
Dim reader As IO.StreamReader = New IO.StreamReader(httpResp.GetResponseStream)
Dim respHTML As String = reader.ReadToEnd() 'respHTML就是网页源代码
TitelStart = respHTML.IndexOf("<title>") + 7
TitelEnd = respHTML.IndexOf("</title>")
TitelTxt = respHTML.Substring(TitelStart, TitelEnd - TitelStart)
Return TitelTxt
End Function