VB.net下载URL的HTML

VB.net下载URL的HTML,html,vb.net,internet-explorer,download,filestream,Html,Vb.net,Internet Explorer,Download,Filestream,Im需要下载服务器发送URL后生成的HTML。我原以为webclient.download文件可以工作,但如果不以文件扩展名结束URL,它似乎就放弃了 如果我确实设置了一个webbrowser控件,该控件已导航到同一域上的站点;但是,webbrowser为documentcompleted事件设置了一个处理程序,我不想触发该事件 如果最好的解决方案是加载页面并使用webbrowser.documentstream获取流并将其写入文件,那么我有两个问题: 1) document.stream返回s

Im需要下载服务器发送URL后生成的HTML。我原以为webclient.download文件可以工作,但如果不以文件扩展名结束URL,它似乎就放弃了

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

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

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

2) 当我打字时,我自己回答了这个问题:p

如果这不是最好的解决方案,而且webclient可以在生成文件后下载该文件,我该怎么做\

编辑:如果我有点不对劲,请毫不犹豫地告诉我:)我对VB还是相当陌生的

编辑: 下面的命令不起作用。我的逐步测试表明,我实际上是在向函数传递可用数据,但由于某些原因,文件仍然没有被创建

单一编码声明:

 Dim uniencoding As New System.Text.UnicodeEncoding()
代码:


如果您只想获取HTML(或响应包含的任何内容),而不实际将其呈现到屏幕上,那么可以使用该类轻松地实现这一点


您不需要文件扩展名,这非常适合wc.DownloadFile(“,“C:\temp.txt”)如果您不想保存到文件,可以使用downloadstring我确实想保存到文件,但DownloadFile似乎不起作用。我将在第二时间发布代码。这应该可以很好地工作,因为我可以简单地将html作为字符串写入文本文件。我不在乎保留空白和缩进:上面编辑的PI显示了我在尝试做什么。由于某些原因,文件没有在目录中创建,但程序没有返回错误。有什么想法吗?我更新了答案,展示了一种将html字符串写入文件的简单方法。如果文件不存在,这会写入文件吗?如果不是的话,我必须为它添加一行代码。我添加了创建文件的代码,我注意到了两个问题。当程序运行时,我无法打开文本文件,这意味着我必须关闭流(没有问题),但即使我手动添加了有效的HTML地址,该行也没有写入文件。。。
 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
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