以下是我用来实现此功能的示例代码,如果我尝试阅读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
答案 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())
温斯顿