初めまして。
只今、WebBrowserを使用し、社内でブラウザを開発しております。
それで表示するのは問題ないのですが
例えばブラウザで表示し、その後次のページを表示するとします。
その際にどこのページから今のページを見たのかをWEBサーバーに値を渡したいのですが
なかなかうまくいきません。
どなたかご教授頂ければ幸いです。
やりたい手順
ブラウザでサイトAを閲覧
次に
ブラウザでサイトBを閲覧
ここで表示した時にサイトAからきたということをWEBサーバー側に渡したい。
(渡したいのはWEBサーバーでログを取ってるので・・・)
今現在では
ブラウザでサイトAを閲覧
次に
ブラウザでサイトBを閲覧
するとサイトBを直接見たとしかWEBサーバーには返りません。
環境はVB6です。
宜しくお願い致します。
flagにRefererを設定するだけ。
>ここで表示した時にサイトAからきたということをWEBサーバー側に渡したい。
ここで言っているWEBサーバーとは、サイトBのWEBサーバーのことですか?
それとも独自(例えば社内)のWEBサーバーですか?
それは様、あ様、ご返答有難う御座います。
それは様、Refererの設定でいけるんですね。
早速試してみます。
それから、あ様、WEBザーバーとは社内のWEBサーバーです。
そのサーバーでどこからきたのかを取得しておりますので
WebBrowserで値を渡したかったのです。
宜しくお願い致します。
それは様、試してみたのですがうまく取得できなかったです。
ヘッダー部分に記載すればよいのでしょうか??
ひょっとして自分の書き方が間違ってるのでしょうか??
下記に記載しておきます。
再度ご教授頂ければ幸いです。
宜しくお願い致します。
Flags = 0
Headers = "Referer: http://www.google.co.jp/" & vbCrLf
WebBrowser.Navigate URL, Flags, , , Headers
> それは様、試してみたのですがうまく取得できなかったです。
まずは、状況を確認・整理してみてください。
現在の状況は、VB から Referer が送信されていないのでしょうか?
それとも Referer は送信されているのに、サーバー側で
受け取れない状態なのでしょうか?
少なくとも、当方で
Private Sub Form_Load()
Dim URL As String
URL = "http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200909/09090020.txt"
Dim Flags As Variant
Flags = 0
Dim Headers As String
Headers = "Referer: http://www.google.co.jp/" & vbCrLf
WebBrowser1.Navigate URL, Flags, , , Headers
End Sub
というコードを書いてみた場合、送出された HTTP リクエストは
> GET /MADIA/VBBBS2/wwwlng.cgi?print+200909/09090020.txt HTTP/1.1
> Accept: */*
> Referer: http://www.google.co.jp/
> Accept-Language: ja
> Accept-Encoding: gzip, deflate
> 以下略
のように、Referer ヘッダを含んだものが送出されましたよ。
魔界の仮面弁士様ご教授有難う御座います。
再度試しましたところ問題なくRefererの値は出てました。
ただ、サイトAを見てそこに記載してるURLを手動で見ると問題なく取れてるのですが、サイトAを見た後、自動でWebBrowserで開くと取得できません。
何か違いかあるのでしょうか??
JavaScriptが関係してるとかあるのでしょうか??
お忙しい中申し訳御座いませんが宜しくお願い致します。
>自動でWebBrowserで開くと...
そういうことは質問の最初から書いておくべきこと。
JavaScriptで他に飛ばされる時に、
OnBeforeNavigate2イベントでHeaderを再設定してやれば?
ツイート | ![]() |