タイトル : Re: IE8環境でのMSXML2.XMLHTTP30挙動 投稿日 : 2010/11/20(Sat) 12:17 投稿者 : 花ちゃん
今まで使った事がないので詳しくは知りませんが、何方からもレスがないようなので。 > IE6の時に、ID/Password で認証が必要なサイトに IE6上で事前に認証 > (→サイトを開いておく)した状態で、そのサイト配下のコンテンツに > 動的にMSXML2.XMLHTTP30にてアクセスしておりました。 > > Dim objHTTP As New MSXML2.XMLHTTP30, sReturn As String > objHTTP.Open "post", URL, False > objHTTP.send > sReturn = objHTTP.responseText > > ※IE6のセッションクッキーなどが有効であったようです。 > > しかし、IE8に変更した後は、認証エラーとなりデータが上手く取得できません。 Yahoo のメールサイトで確認した限りでは、問題なく取得する事ができました。 但し、取得するサイトによっては文字化けしたり、部分的に取得できないところも あるようです。 具体的なサイトのアドレスやエラーが発生している箇所のコードや正確なエラーメッセージ 等を投稿された方が...。 (IE6.0 の時に使っていてうまく取得できたコードを他の人が動作確認できるコードを投稿 して見て下さい。) > ※ 以前はoIE_DL.document.body.outerHTML でも拾えたようですが > 単に画面表示されている内容のhtmlしか取得できないようです。 > ⇒ この辺の情報も解れば教えて下さい。 逆に、outerHTML で取得できない部分のどの部分が必要なのでしょうか? oIE_DL.document.documentElement.outerHTML なら、HEAD 情報も含んで取得できますが。 > XMLHTTPなどで、IEの認証を活かした状態で接続させる方法は有りますでしょうか? このIEの認証 とは? 何を指しているのでしょうか? サーバーに対するアクセス制限でしょうか? サイト内の特定のページ等への入室制限 でしょうか? 後記ならこんな感じ Private Sub Command1_Click() Dim oHttp As Object Set oHttp = CreateObject("MSXML2.XMLHTTP") '下記アドレスの末尾の半角スペースは、実使用時は削除して下さい。 oHttp.open "post", "http://www.kent-web.com/bbs/gwbbs/gwbbs.cgi ", False oHttp.send "id=guest&pw=guest" Debug.Print Replace(StrConv(oHttp.responseBody, vbUnicode), vbLf, vbCrLf) Set oHttp = Nothing End Sub 但し、サイトの仕様により設定も違ってきますし、認証? されない場合もあります。 ※ Windows 7 上の IDE 上で動作確認するとバージョンによってエラーが発生しますので EXE 版で確認するとかして下さい。 特に、CreateObject("Msxml2.XMLHTTP.4.0") の 場合、VB が落ちてしまいます。 CreateObject("Microsoft.XMLHTTP") や CreateObject("Msxml2.XMLHTTP") や CreateObject("Msxml2.XMLHTTP.3.0") 等では、IDE上でも動作 OK >IE6の時に、ID/Password で認証が必要なサイトに IE6上で事前に認証 事前に別に IE なり、WebBrowser で読み込んで表示しているなら、最初から IE なり 、WebBrowser なりを使った方が早いような(トータルで)気がしますが? そもそも取得して何をしたいのか等具体的に書いて頂くと違った方法もあるかと思うの ですが。 |