Streadreader将vbcrlf和引号添加到输入文件

时间:2016-02-24 15:56:54

标签: html asp.net-mvc vb.net

我正在尝试将html文件读入我的.net应用程序(这是一个电子邮件模板)。问题是,当我读到它时,.net插入vbcrlf(我可以修复)并且还替换每个“with double”“这真的搞砸了html。

这是代码(简化以便于阅读)

      Dim obj = WebRequest.Create("http://www.myurl.com/email/standard.htm").GetResponse()
    Dim rdr As New StreamReader(obj.GetResponseStream())
    Dim body As String = rdr.ReadToEnd 

现在“body”有html但也有vbcrlf(无处不在)并添加了双引号。

    vbCrLf & "<!DOCTYPE html>" & vbCrLf & vbCrLf & "<html lang=""en"">" & vbCrLf & "<head>" & vbCrLf & "    <title>apptimi</title>" & vbCrLf & "  "

知道为什么会这样吗? 谢谢

2 个答案:

答案 0 :(得分:1)

尝试使用WebClient获取HTML。

 Dim html As String = New WebClient().DownloadString("http://www.myurl.com/email/standard.htm")

或者根据您要定位的框架替代

Dim html As String = Await New WebClient().DownloadStringTaskAsync("http://www.myurl.com/email/standard.htm")

你没有提到你想用它做什么,但是如果你想解析HTML那么我会看看HTMLAgilityPack ......

答案 1 :(得分:0)

如果您在“快速观察”中查看该内容,或者设置断点并将body悬停在该值上,则会欺骗自己。 IDE正在这样做。 VbCrLf是IDE在HTML中的NewLines表示。加倍的双引号是IDE的指标......它们实际上并不存在。

控制台应用程序:

Sub Main()
    Dim html As String = New Net.WebClient().DownloadString("http://www.myurl.com/email/standard.htm")

    Console.WriteLine(html)

    Console.Write("Done . . . ")
    Console.ReadKey()
End Sub

将Quick Watch窗口中的IDE版本与控制台输出中显示的内容进行比较......后者是现实。

Mark Codexer的答案是正确的答案,而不是我的......他赢得了它。