WebBrowser1.Navigate(New Uri(html)) に対してのReferer操作を行いたいと思っています、調べたところNavigate2でのサンプルソースなどは見つかりましたがNavigateでしてみるとエラー文がでてしまいます。
↓このようなもの
ie.Navigate2("http://www.google.co.jp/", Headers:="Referer: http://www.bcap.co.jp/hanafusa/hoge.aspx" & vbCrLf)
どのような引数でおこなえるのでしょうか?
環境
win7 or xp
vb2010 or2008
よろしくお願いいたします。
その構文が使えるのは、System.Windows.Forms.WebBrowser ではなく、
ActiveX コントロール版のアンマネージ WebBrowser (AxWebBrowser)の方です。
http://msdn.microsoft.com/en-us/library/aa752093.aspx
http://msdn.microsoft.com/en-us/library/aa752094.aspx
http://msdn.microsoft.com/en-us/library/aa752133.aspx
http://msdn.microsoft.com/en-us/library/aa752134.aspx
マネージ WebBrowser の Navigate の場合には、
(String, String, Byte(), String)オーバーロードの additionalHeaders 引数か、
http://msdn.microsoft.com/ja-jp/library/ms161355.aspx
(Uri, String, Byte(), String)オーバーロードの additionalHeaders 引数を使います。
http://msdn.microsoft.com/ja-jp/library/ms161356.aspx
Dim url As String = "http://www.confrage.com/php/access/referer/referer.php"
Dim referer As String = "Referer: http://www.confrage.com/php/" & vbCrLf
WebBrowser1.Navigate(url, Nothing, New Byte() {}, referer)
魔界の仮面弁士様ありがとうございます、大変勉強になりました。
もう一つ質問なのですが
Dim url As String = "http://www.confrage.com/php/access/referer/referer.php"
Dim referer As String = "Referer: http://www.confrage.com/php/" & vbCrLf
WebBrowser1.Navigate(url, Nothing, New Byte() {}, referer)
から
魔界の仮面弁士様ありがとうございます、大変勉強になりました。
もう一つ質問なのですが
url = "http://www.confrage.com/php/access/referer/referer.php"
referer = "Referer: http://yahoo.co.jp" & vbCrLf
WebBrowser1.Navigate(url, Nothing, New Byte() {}, referer)
としてもリファラーは初回のものになってしまします、
つどセットしたリファラーにはできないものでしょうか?
> リファラーは初回のものになってしまします、
同じ URL への GET リクエストなので、前回のキャッシュが使われており、
サーバーへのリクエストが行われていないためです。
アンマネージ版のメソッドにはキャッシュを読まないモードも
用意されているので、それを用いるという手はあります。
http://msdn.microsoft.com/en-us/library/dd565688.aspx
CallByName(WebBrowser1.ActiveXInstance, "Navigate", CallType.Method, _
url, BrowserNavConstants.navNoReadFromCache, Type.Missing, Type.Missing, referer)
ただし、古いバージョンのIE環境では、この指定が無視されます。
IE 8 や IE9 環境では効くようですけれども。
魔界の仮面弁士様さっそくのご回答ありがとうございます、
ということは、一度違うページにいっても・・・キャッシュが残っていれば同じということですかね?キャッシュをクリアすれば改善されるのでしょうか?一度試してみようと思います。
このたびはありがとうございました。