1

我需要在发送 URL 后下载服务器生成的 HTML。我想也许 webclient.downloadfile 会起作用,但当你不以文件扩展名结束 URL 时,它似乎放弃了。

如果我确实设置了已导航到同一域上的站点的 webbrowser 控件;但是,该 webbrowser 为我不想触发的 documentcompleted 事件设置了一个处理程序。

如果最好的解决方案是加载页面并使用 webbrowser.documentstream 获取流并将其写入文件,我有 2 个问题:

1) document.stream 返回一个system.io.stream,文件对象使用system.io.filestream。我可以轻松地将流写入文件流吗?如果可以,如何?

2)我在打字时为自己回答了这个问题:P

如果这不是最好的解决方案,并且 webclient 可以在生成文件后实际上下载文件,我将如何处理?\

编辑:如果我离基地很远,请不要犹豫让我知道:) 我对 VB 还是很陌生

编辑:以下不起作用。我的步骤显示我实际上正在将可用数据传递给函数,但由于某种原因仍未创建文件。

统一编码声明:

 Dim uniencoding As New System.Text.UnicodeEncoding()

代码:

 request = WebRequest.Create(tempstring)
    Using response As WebResponse = request.GetResponse()
        Using reader As New StreamReader(response.GetResponseStream())
            Dim html As String = reader.ReadToEnd()
            fstream = New FileStream(surl, FileMode.Create)
            fstream.Write(uniencoding.GetBytes(html), 0, Len(uniencoding.GetBytes(html))) 'Write the HTML to a local file
        End Using
    End Using
4

1 回答 1

3

如果您只想获取 HTML(或响应包含的任何内容),而无需将其实际呈现到屏幕上,则可以使用WebRequest该类轻松完成。

Dim request As WebRequest = WebRequest.Create("http://www.google.com")
using response As WebResponse = request.GetResponse()
    Using reader As New StreamReader(response.GetResponseStream())
        Dim html As String = reader.ReadToEnd()
        File.WriteAllText("test.html", html)
    End Using
End Using
于 2013-10-04T13:19:21.620 回答