2016-09-30 94 views
3

你好我在vb.net应用程序中使用了一段时间的代码,但今天当我尝试它时,它返回了一个403错误。VB.net当有资源可用时,HttpWebRequest返回403禁止

Shared Function GetHtmlPage(ByVal http://mmo-stream.net/AiaSpecto/tester.php As String) As String 

    Dim strResult As String 
    Dim objResponse As WebResponse 
    Dim objRequest As WebRequest 

    objRequest = HttpWebRequest.Create(strURL) 

    objResponse = objRequest.GetResponse() 
    Using sr As New StreamReader(objResponse.GetResponseStream()) 
     strResult = sr.ReadToEnd() 
     sr.Close() 
    End Using 
    Return strResult 

End Function 

我真的不能理解为什么我得到一个403错误,因为当我去链接本身我得到确定的消息。

回答

2

请求需要一个useragent头。 如果更改对象HttpWebResponseHttpWebRequest,并添加一个通用的UserAgent它应该返回OK:

Dim objResponse As HttpWebResponse 
Dim objRequest As HttpWebRequest 
objRequest = HttpWebRequest.Create(strURL) 
objRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36" 
objResponse = objRequest.GetResponse() 
+0

由于做了很多,为什么网站对useragant didnt照顾以前那样,但现在他们做什么?你知道吗? –

+0

对不起,我不是100%确定为什么,但我也注意到了它。只能假设它是试图确保它只返回200秒到实际用户的浏览器。 – Neal