Module MyModule
' ********************************************************' ' ********************************************************
Sub Main()
' HttpWebRequest のインスタンス
' コンストラクタでは無く、Create メソッドを使用する
Dim req As System.Net.HttpWebRequest = _
System.Net.HttpWebRequest.Create("http://localhost/web/test/sv1.php")
req.Method = "GET"' HttpWebResponse のインスタンスを取得[ 送信 ]
Dim res As System.Net.HttpWebResponse = req.GetResponse()
' Stream
Dim resStream As System.IO.Stream = res.GetResponseStream()
' 全て表示
Dim sr As New System.IO.StreamReader(resStream)
Console.WriteLine( sr.ReadToEnd() )
' Streamを閉じる
sr.Close()
' ヘッダー情報の取得
Dim str As String
Dim str2 As String()
Dim strValue As String
' 次の HttpWebRequestを作成
req = System.Net.HttpWebRequest.Create("http://localhost/web/test/sv2.php")
' Set-Cookie を Cookie で送り返す
For Each str In res.Headers
str2 = res.Headers.GetValues(str)
For Each strValue In str2
Console.WriteLine(str + ": " + strValue )
Next
if str = "Set-Cookie" then
strValue = res.Headers.Get(str)
strValue = strValue.Replace(",", "; ")
req.Headers.Add("Cookie", strValue )
end if
Next
' 送信
res = req.GetResponse()
' 受信と表示
resStream = res.GetResponseStream()
sr = New System.IO.StreamReader(resStream)
Console.WriteLine(sr.ReadToEnd())
sr.Close()
End Sub
End Module
Module MyModule
' ********************************************************' ' ********************************************************
Sub Main()
Dim strUrlDir As String = "http://localhost/web/test"' ****************************************************************
' HttpWebRequest のインスタンス
' コンストラクタでは無く、Create メソッドを使用する
' ****************************************************************
Dim strUrl1 As String = "http://localhost/web/test/sv1.php"
Dim req As System.Net.HttpWebRequest = _
CType(System.Net.WebRequest.Create(strUrl1), System.Net.HttpWebRequest)
' クッキー保存用
Dim cc As System.Net.CookieContainer = New System.Net.CookieContainer()
' サーバーからのクッキーを保存させる
req.CookieContainer = cc
req.Method = "GET"' HttpWebResponse のインスタンスを取得[ 送信 ]
Dim res As System.Net.HttpWebResponse = req.GetResponse()
' ****************************************************************
' 読み出し
' ****************************************************************
Dim resStream As System.IO.Stream = res.GetResponseStream()
Dim sr As New System.IO.StreamReader(resStream)
Console.WriteLine( sr.ReadToEnd() )
' StreamReader オブジェクトと、その基になるストリームを閉じる
sr.Close()
' ****************************************************************
' PHP 側の setcookie のデフォルトで、全てのパスに対して
' 登録されてしまうので、ディレクトリ対象として設定しなおす
' ****************************************************************
Dim strHeaders As String = cc.GetCookieHeader(New Uri(strUrl1))
strHeaders = strHeaders.Replace(";", ",")
cc.SetCookies( New Uri(strUrlDir), strHeaders )
Dim strUrl2 As String = "http://localhost/web/test/sv2.php"
req = CType(System.Net.WebRequest.Create(strUrl2), System.Net.HttpWebRequest)
req.CookieContainer = cc
req.Method = "GET"
res = req.GetResponse()
resStream = res.GetResponseStream()
sr = New System.IO.StreamReader(resStream)
Console.WriteLine( sr.ReadToEnd() )
sr.Close()
' ****************************************************************
' 同一ディレクトリ内のクッキーを継承したい場合はその都度実行
' ****************************************************************
strHeaders = cc.GetCookieHeader(New Uri(strUrl2))
strHeaders = strHeaders.Replace(";", ",")
cc.SetCookies( New Uri(strUrlDir), strHeaders )
End Sub
End Module