どのように発注するソフトを作成するのかを楽天証券を例に説明します。
他の証券会社も同様に作成することができます。
先ずは、ログイン処理から説明します。
(1)ログイン画面を表示
ログイン画面のURL(https://www.rakuten-sec.co.jp/ITS/V_ACT_Login.html)を
メソッドにGETを指定してリクエストする。
(2)ログイン画面の解析
メソッドにGETを指定してリクエストすると、Webサーバ(楽天証券)からレスポンスが返ってきます。
この内容を解析します。
返ってきた内容を見ると、以下のような文字列があると思います。
<form name="loginform" action="https://member.rakuten-sec.co.jp/bv/app/Login.do" method="POST" target="_top">
上記のようにaction="URI" method="POST"になっている場合、メソッドにPOSTを指定し、さらに要求パラメタを指定しててリクエストすれば、要求パラメタに従った内容のページがWebサーバ(楽天証券)からレスポンスとして返ってきます。
それではPOSTの場合、どのような要求パラメタを指定すればよいのかを説明します。
ログインIDとパスワードの所が以下のようになっていると思います。
ログインID
<td width="90" align="right" valign="middle" nowrap class="login-bg1 fs100" style="padding-right:5px;color:#fff;font-weight:bold;">ログインID</td>
<td width="166" valign="middle" class="login-bg1"><input type="text" name="loginid" maxlength="18" style="width:200px;" tabindex="1"></td>
パスワード
<td align="right" valign="middle" class="login-bg1 fs100" style="padding-right:5px;color:#fff;font-weight:bold;">パスワード</td>
<td width="166" valign="middle" class="login-bg1"><input type="password" name="passwd" maxlength="18" style="width:200px;" tabindex="2"></td>
ここで大事なのは、input type="text" name="loginid"とinput type="password" name="passwd"の文字列です。
inputという文字列があればこれが入力に必要なものだと思ってください。
そして、nameがパラメタになります。
たとえば、ログインIDが1234567でパスワードがabcの場合、パラメタとして送るのは
loginid=1234567&passwd=abc
になります。
2つ以上パラメタがある場合は、&で連結します。
WebRequestのセット例は以下のようになります。
'パラメタのセット
sendparm="loginid=1234567&passwd=abc"
'バイト型配列に変換
Dim postDataBytes As Byte() = _
System.Text.Encoding.ASCII.GetBytes(sendparm)
'URIのセット"
strURI="https://member.rakuten-sec.co.jp/bv/app/Login.do"
'WebRequestの作成
myRequest = CType(WebRequest.Create(strURI), HttpWebRequest)
'ユーザー エージェントの識別名をセット
myRequest.UserAgent _
= "Mozilla/4.0 (compatible; MSIE 7.0; Windows XP)"
'メソッドにPOSTを指定
myRequest.Method = "POST"
上記をWebサーバに送ると、WebサーバがログインIDとパスワードをチェックし、正しければログイン後の画面がレスポンスとして返されます。誤っていればエラーの画面がレスポンスとして返されます。
例なのでsendparmやstrURIはこの場所でセットしていますが、普通はPOSTルーチンの入力にします。
ちなみに、
<div class="fs90"><a href="http://service.money.rakuten.co.jp/">楽天マネーサービス</a> | <a href="http://www.rakuten.co.jp/"><b>楽天市場へ</b></a></div>
上記のようにa href="URI"になっている場合、そのURLのページを表示したい場合は、メソッドにGETを指定してリクエストすれば、そのページがWebサーバ(楽天証券)からレスポンスとして返ってきます。
'URIのセット"
strURI="http://service.money.rakuten.co.jp/"
'送信データを作成する
myRequest = CType(WebRequest.Create(strURI), HttpWebRequest)
'ユーザー エージェントの識別名をセット
myRequest.UserAgent _
= "Mozilla/4.0 (compatible; MSIE 7.0; Windows XP)"
'メソッドにGETを指定
myRequest.Method = "GET"
<td align="right" style="padding-right: 5px;"><form id="hdr-search1" name="hdr-search1" action="http://www.google.co.jp/custom" method="get" target="_blank" style="margin:0;padding:0;">
上記のようにaction="URI" method="GET"になっている場合も、メソッドにGETを指定してリクエストすれば、そのページがWebサーバ(楽天証券)からレスポンスとして返ってきます。