投稿日 | : 2003/05/20(Tue) 09:57 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re: VBでブラウザにログイン |
> http://www.wakwak.com/info/service/util.html
> 上記のURLにVBを使ってログインし、「ログインID」「パスワード」と入力し、「認証」ボタンを操作し、
そのページの主要な部分を抜き出すと、以下のようなHTMLになります。
(細かい部分は省略しています)
<form name="form4usr" method="POST"
action="https://signup00.wakwak.com/user_asp/wakwak/buffer.asp">
<input type="hidden" name="backURL" value="http://www.wakwak.com/info/service/util.html">
<input type="hidden" name="tmpSWITCHoption" value="wak">
<input type="text" name="d_account">
<input type="password" name="d_password">
<input type="image" name="imageField">
</form>
VBで、上記のリクエストを送信する場合には、
・InternetExplorerオブジェクト(WebBrowserコントロール)を使う
・XMLHTTPオブジェクト(ServerXMLHTTPオブジェクト)を使う
のいずれかを用いると良いでしょう。
とりあえず、XMLHTTPを使う方法を例に挙げると、
strUrl = "http://www.wakwak.com/info/service/util.html"
objXMLHTTP.Open "POST", strUrl, False
objXMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objXMLHTTP.send strParameter
Debug.Print objXMLHTTP.responseText
のようになります。(objXMLHTTPの宣言は、過去ログNo.3949を参照してください)
ここで、strParameter は、送信するデータの中身です。
これは、<input name="名前" value="値"> の内容を、
名前1=値1&名前2=値2&名前3=値3&………
のように列挙した文字列となります。すなわち、
strParameter = "backURL=" & Encode("http://www.wakwak.com/info/service/util.html") _
& "&tmpSWITCHoption=wak" _
& "&d_account=" & Encode(strLoginId) _
& "&d_password=" & Encode(strPassword) _
& "&imageField.x=0" _
& "&imageField.y=0"
のようになります。(imageField.x/yは、認証ボタンを押した時の座標位置です)
なお、上記の Encode というのは、「UrlEncode」処理を行う関数です。
UrlEncode の処理は、BASP21 DLLを使って、
Public Function Encode(ByVal Src As String) As String
Encode = CreateObject("basp21").BASE64(Src, 4)
End Function
のように実装するのが簡単ですが、実際には
http://www.wakwak.com/info/service/util.html
を
http:%2F%2Fwww.wakwak.com%2Finfo%2Fservice%2Futil.html
のように変換するだけの処理なので、Replace関数などを使って自作されても良いかと思います。
# 参考資料[VB で URL エンコード]
# http://www.geocities.co.jp/SilkRoad/4511/vb/urlenc.htm