如何使用VB.Net读取URL返回的内容?

时间:2009-08-18 13:21:59

标签: vb.net http redirect

以下是我用来实现此功能的示例代码,如果我尝试阅读yahoo.com,它会起作用。

这是问题所在。我需要读取的地址是一个java servlet,它处理传入的参数,在服务器上生成文本文档,然后重定向到另一个URL并返回服务器上的文本文件的地址。然后我需要下载该文本文件并进行处理。我在使用参数连接到第一个URL时遇到问题,我认为它与重定向有关。

我正在使用WebRequest对象,我尝试使用HttpWebRequest对象。是否还有其他支持重定向的对象?

TIA

    Dim reader As StreamReader
    Dim request As WebRequest
    Dim response As WebResponse
    Dim data As String = ""

    Try
        request = WebRequest.Create("URL Here")
        request.Timeout = 30000
        response = request.GetResponse()
        reader = New StreamReader(response.GetResponseStream())
        data = reader.ReadToEnd()
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

    Return data

4 个答案:

答案 0 :(得分:2)

修改

我刚刚测试了HttpWebRequest.Create(),并确实处理了301和302罚款而没有额外的代码。

你能发布你看到的错误

吗?

您可以将WebResponse转换为HttpWebResponse:

我需要将其转换为VB ...但它可能会帮助您开始:

var response = request.GetResponse() as HttpWebResponse;

if (response.StatusCode == HttpStatusCode.Moved || response.StatusCode == HttpStatusCode.Redirect)
{
    // Follow Redirect,  new request based off Redirect
}

// Read Data 

答案 1 :(得分:0)

我想我发现了一些可行的方法。

我改为使用WebBrowser控件。

有一个运行此代码的按钮......

WebBrowser1.Navigate("URL Here")

这个函数在请求返回后处理。

Private Sub WebBrowser1_Navigated(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated    
    MsgBox(WebBrowser1.DocumentText)    
End Sub

答案 2 :(得分:0)

我相信你只需要设置AutoRedirect属性。

request.AutoRedirect = true;

答案 3 :(得分:0)

    webRequest = webRequest.Create(URL)
    webresponse = webRequest.GetResponse()
    inStream = New StreamReader(webresponse.GetResponseStream())

Read URL full source code

温斯顿