1

オンラインの DNS レポート ( http://viewdns.info/dnsreport/?domain=google.com )から HTML を取得しようとしているコードを書いていますが、いくつか問題があります。実際に必要な HTML ファイルの 1 行 (231 行目) は、約 680 文字の後で途切れています。ただし、重要な行の後のすべての行は正しく読み取られています。HTML を取得するためのコードを以下に示します。2 つの方法で試してみました。これは私が試した最初の方法です:

Public Function getWebResourceData(ByVal strURL As String) As String
    Dim webClient As New System.Net.WebClient
    Dim result As String = webClient.DownloadString("http://viewdns.info/dnsreport/?" &        TextBox1.Text)
    return result
End Function

そして、これは2番目です:

Public Function getWebResourceData(ByVal strURL As String) As String
    Dim rt As String = ""
    Dim wRequest As WebRequest
    Dim wResponse As WebResponse
    Dim SR As StreamReader
    wRequest = WebRequest.Create(strURL)
    wResponse = wRequest.GetResponse
    SR = New StreamReader(wResponse.GetResponseStream)
    rt = SR.ReadToEnd
    SR.Close()
    return rt
End Function

この時点で、他に何が間違っているのか本当にわかりません。また、結果をテキスト ファイルに保存して、それが問題であるかどうかを確認しようとしましたが、それも正しくありませんでした。文字列が停止している領域の 16 進コードを調べましたが、異常はありません。分割は、(/tr)(tr) のように、背中合わせのワニ括弧 (括弧で示されています) の間で発生します。

しかし、問題のない HTML 全体にこれらのタグのセットが多数あります。

4

1 に答える 1

0

どちらの関数も、読み取ったものを返しません。2番目のものをテストしましたが、正しく動作します。

Sub Main
    Dim ret = getWebResourceData("http://viewdns.info/dnsreport/?domain=google.com")
    Console.WriteLine(ret.Length)
     ' Output = 21605
End Sub

Public Function getWebResourceData(ByVal strURL As String) As String
    Dim rt As String = ""
    Dim wRequest As WebRequest
    Dim wResponse As WebResponse
    Dim SR As StreamReader
    wRequest = WebRequest.Create(strURL)
    wResponse = wRequest.GetResponse
    SR = New StreamReader(wResponse.GetResponseStream)
    rt = SR.ReadToEnd
    SR.Close()
    return rt
End Function
于 2014-06-06T20:11:40.583 に答える