WebClientクラスを利用する場合と、
WebRequest/WebResponseクラスを利用する場合がある。
WebRequestクラスとWebResponseクラスを利用する場合。
(このふたつは通常、ペアで使用します。)
WebRequestクラスによりWebサーバへ送信するリクエストを作成。
GetResponseメソッドを使用し、リクエストの送信、レスポンスの取得を行います。
レスポンスを表すクラスがWebResponseクラスになる。
Imports System.IO
Imports System.Net
Public Class WebRequestResponse1
Shared Sub Main( )
Dim enc As Encoding = Encoding.GetEncoding("Shift_JIS")
Dim url As String = "http://www.google.co.jp/"
Dim request As WebRequest = WebRequest.Create( url ) ※1
Dim response As WebResponse = request.GetResponse( ) ※2
Dim stream As Stream = response.GetResponseStream( ) ※3
Dim streamreader As StreamReader = New StreamReader( stream, enc )
Dim html As String = stream.ReadToEnd( )
streamreader.Close( )
stream.Close( )
Console.WriteLine( html )
End Sub
End Class
※1 リクエストの作成を行うのにNewによるインスタンス化ではなく、静的メソッドであるCreateメソッドを呼び出している点に注意。
WebRequestのCreateメソッドは、WebRequestクラスの派生クラスを返します。今回の場合、http://で始まるURI(Uniform Resource Identifier)が渡されたので、HttpWebRequestインスタンスが返されます。
※2 クライアント アプリケーションは、WebResponse オブジェクトを直接作成しません。このオブジェクトは、WebRequest インスタンスで GetResponse メソッドを呼び出して作成します。
GetResponseメソッドは、インターネットリソースへの要求を送信し、WebResponseインスタンスを返します。
※3 WebResponse.GetResponseStreamメソッド インターネットリソースからデータストリームを返します。