WEBカメラへWebBrowser1.Navigate2 URLで画像を受信しています。
Me.WebBrowser1.Navigate2 "http://aaa.bbb.ccc.ddd/"
このWEBカメラは、2重ログインが出来ない仕組みなので、プロ
グラムを終了すると、その後しばらくログインできません。
これを防止するためWEBカメラの仕様で、同一のIPアドレスのCGI
に対してコマンドをPOSTして、ログアウトを通知して、WEBカ
メラは(CGIが)「了解」の旨のデータを返してくる仕様にな
っています。
Me.WebBrowser1.Navigate2 _
"http://aaa.bbb.ccc.ddd/fff.cgi" ,"POST",LOGOUT_CMD
所定のコマンドをWebBrowser1.Navigate2でPOSTすることには
成功したのですが、WEBカメラのCGIが返すデータがHTMLでは無いた
めかメモ帳が突然開き、その中で「了解」を示すコマンドが表示さ
れます。
WebBrowser1とは別にWinsockコントロールで送信してWinsockで受信
すべきなのでしょうか。WinsockでサーバのCGIへPOSTする方法
もわかりません。
どのように対処したらよいのか、困っています。よろしくお願いし
ます。
確かでは有りませんが、
InetコントロールでExecuteメソッドを使えば、
HTTPのPOSTメソッドを使えるような雰囲気です。
Webページの表示が目的ではなく、HTTP/HTTPSの通信だけが
必要なのであれば、WebBrowserではなく、XMLHTTPの方が便利かも。
ガッ様 アドバイスありがとうございます。
アクセスには認証が必要でMe.WebBrowser1.Navigate2ではURL内に"ID:PASS@"
を含めることでOKなのですが、Inet1の場合、同方法が使用できません。
おそらくBasic認証ではないものと思われ、さらにLAN上のログを確認すると
WebBrowser1.Navigate2ではUser_AgentがMSIE6.0;Windows98なのに対し
Inet1.Excuteの場合User_Agentは、Microsoft URL Contorlです。
このUser-Agentの違いが、認証ダイアログをスキップできるかどうかの差では
ないかと思っています。
そんな理由でInetコントロールは使用できない状態です。
Winsock でPOST の方法がわかっても、同様の問題が発生するかもわかりませ
んが、可能性をひとつずつ確かめようと思います。
Winsock でPOST の方法 ご存知のかた、または関連サイトのご紹介、よろし
くお願いします。
魔界の仮面弁士様。ありがとうございます。
XMLHTTPで認証の問題は解決しました。
ログを調査しましたがXMLTHHPの場合、WebBrowser1と同様
User_AgentがMSIE6.0でした。
後は、XMLTHHPでCGIにデータをPOSTする方法を調査して試
してみたいと思います。
「XMLTHHPでCGIにデータをPOSTする方法」もし、壁にいき
づまりましたら、またご指導よろしくお願いします。
XMLHTTPでPOSTでき解決しました。みなさま本当にありがとうございました。
参考に:
Dim OBJ_HTTP As Object
' オブジェクト変数に参照をセット。
On Error Resume Next
Set OBJ_HTTP = CreateObject("MSXML2.XMLHTTP")
If (Err.Number <> 0) Then
Set OBJ_HTTP = CreateObject("MSXML.XMLHTTPRequest")
End If
On Error GoTo 0
If OBJ_HTTP Is Nothing Then
MsgBox "XMLHTTP オブジェクトを作成できませんでした。" _
, vbCritical
Exit Sub
End If
With OBJ_HTTP
'POST送信
.Open "POST", "http://aaa.bbb.ccc.ddd/fff/ggg.cgi, False
.Send "My Send DATA"
'結果
Debug.Print .responseText
End With
End Sub
ツイート | ![]() |