トップC#入門 > ネットワーク上のHTMLファイルの読み込み

ネットワーク上のHTMLファイルの読み込み

1.WebClientクラス

 .NET FrameworkではWeb上のHTMLファイルを簡単に読み込むことができる。 Web上のファイルにアクセスするためのネットワーク関連のクラスは何種類か用意されているが、 次は、最もシンプルなWebClientクラス(System.Net名前空間)を使った例である[1]。

using System;
using System.Net;
using System.Text;

class WebClient20 {
    static void Main() {
        WebClient wc = new WebClient() { Encoding = Encoding.GetEncoding("Shift_JIS") };

        // HTMLソースをダウンロードする
        string sorce = wc.DownloadString("http://home.a00.itscom.net/hatada/main.html");
        wc.Dispose();

        // 表示する
        Console.WriteLine(sorce);
    }
}

2.WebBrowserクラス

読み込んだHTMLソースをコンソールに出力するのではなく、 ブラウザのようにウィンドウ(フォーム)に表示するには、WebBrowserクラスを使う。

次のようにすれば読み込んだHTMLソースをブラウザと同様にそのまま表示する。

using System;
using System.Net;
using System.Text;
using System.Drawing;
using System.Windows.Forms;

class Program {
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }
}

class Form1 : Form {
  
    public Form1() {
        ClientSize = new Size(400, 200);
        WebClient wc = new WebClient() { Encoding = Encoding.GetEncoding("Shift_JIS") };
        string source = wc.DownloadString("http://home.a00.itscom.net/hatada/csharp/csharp01.html");
        wc.Dispose();
        WebBrowser myBrowser = new WebBrowser() { Dock = DockStyle.Fill };
	myBrowser.DocumentText = source;
	this.Controls.Add(myBrowser);
    }
}

必要に応じて、読み込んだHTMLソース source をそのまま表示するのではなく、 一部を抜き出したり、加工して表示することもできる。

また、ファイルを読み込むのではなく、プログラムで作り出した HTMLソースを表示できることは言うまでもない。

HTMLソースに全く修正を加えない場合には WebClientクラスを用いず、次のようにした方が簡単であり、確実である。

using System;
using System.Net;
using System.Drawing;
using System.Windows.Forms;

class Program {
    [STAThread]
    static void Main() {
        Application.Run(new Form1());
    }
}

class Form1 : Form {
    public Form1() {
        ClientSize = new Size(400, 200);
        WebBrowser myBrowser = new WebBrowser() { Dock = DockStyle.Fill };
        myBrowser.Navigate(new Uri("http://home.a00.itscom.net/hatada/csharp/csharp01.html"));
        Controls.Add(myBrowser);
    }
}

A.リファレンス

[1] ファイルをダウンロードし表示する