C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: IEもしくはWebBrowserコントロールでPOSTによる


(過去ログ 39 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■20486 / inTopicNo.1)  IEもしくはWebBrowserコントロールでPOSTによる
  
□投稿者/ エイジ (6回)-(2008/06/11(Wed) 09:43:41)

分類:[VB.NET/VB2005] 

まず目的は、システムの負荷実験です
そのシステムはIIS上で動作し、ASP(.netではありません)で作られており

検索条件を

Request.Form("xxx")
Request.Form("yyy")

と言う形で取得しています



その検索条件をcsvファイルから取込み、読み込んだ行数分
IEもしくはFromを開き、Formの場合はWebBrowserコントロールに検索結果を表示すると言うテスト用のシステムです


そこで問題になったのが、システム上ではPOSTでフォーム情報をサブミットしているんですが

それをシステムからどういう形で行えばよいのか?

と言う点です




今回このシステムを実現するにあたり

環境はVB6もしくはVB2005で行いたいです



現在VB2005の方がWebで参考になるところが多かった為、VB2005で実現しようとしているのですが

(strKeyには検索キーワード、pstrUrlには負荷実験の対象となるASPが指定されています。)


''文字コードを指定する
Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis")

''POST送信する文字列を作成
Dim postData As String = System.Web.HttpUtility.UrlEncode("xxx=0&yyy=", enc) & System.Web.HttpUtility.UrlEncode(strKey, enc)
''バイト型配列に変換
Dim postDataBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(postData)

Me.WebBrowser1.Navigate(pstrUrl, "", postDataBytes, "")


と言う形でNavigateを用いて行おうとしていたのですが、上手くPOSTでデータを送信できず




1枚APSをかんで、APSにPOSTで送信するキーを設定した後、そのフォームをサブミットして、対象となるASPに飛ぶと言う形で実現できないかと考え

Formのロードイベントで
Me.WebBrowser1.Navigateで1枚目のASPを指定し


Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim hiddens As HtmlElementCollection = Me.WebBrowser1.Document.GetElementsByTagName("input")
For Each hidden As HtmlElement In hiddens
Select Case hidden.GetAttribute("name")
Case "xxx"
hidden.SetAttribute("value", "0")
Case "yyy"
hidden.SetAttribute("value", strKey)
Exit For
End Select
Next
Dim formElements As HtmlElementCollection = Me.WebBrowser1.Document.GetElementsByTagName("form")
For Each form As HtmlElement In formElements
Select Case form.GetAttribute("name")
Case "frmHdn"
form.SetAttribute("action", gstrUrl)
form.InvokeMember("submit")
End Select
Next
End Sub


その中のinputタグからxxxとyyyを探しそれぞれvalueを設定し
その後formタグからfrmHdnのフォームを探しサブミットすると言う形を考えましたが


どちらも、取得後のコレクションを見るとItem数が0個でFor文の中を回ってもらえませんでした




参考にさせていただいたのが
http://dobon.net/vb/dotnet/internet/webrequestpost.html
http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200611/200611_06110021.html
http://blogs.wankuma.com/naoko/archive/2007/11/14.aspx

の方々のサイトになります




以上が現状になるんですが、お気づきの点があればご教授頂きたいです

よろしくお願いいたします
引用返信 編集キー/
■20506 / inTopicNo.2)  Re[1]: IEもしくはWebBrowserコントロールでPOSTによる
□投稿者/ エイジ (7回)-(2008/06/11(Wed) 11:45:35)
間にかますファイルをASPではなくHTMLにすることで、下の手法により自己解決いたしました。

ただ、直接対象のASPへといける方が望ましい為

何か手法があるようでしたらお教えいただきたく思います。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -