- 締切済み
フォームからPOST、ブラウザで結果を受ける
フォームのテキストボックスに検索語を入れて、ボタンを押すと、 その結果を既定のブラウザで表示させたいです。 調べると、フォームがpostをして、「フォームがその結果を受け取る」というのは、 よく見るのですが、フォームがPOSTして、ブラウザが開いてサーバから返ってきた結果を 表示するというのはできるのでしょうか? 一度、ブラウザを立ち上げてそこからPOSTさせているというテクニックなどを 使っているのでしょうか? 例で言えば、一つのテキストボックス、一つのボタンで、 testと文字を入れて、ボタンを押すと、何かしらのPOST処理が行われて、 ブラウザが開いてgoogleの検索結果が表示される。 このような事をしたいのです、 なお、検索語は数字のみなので、2バイト文字は使いません。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- vbhanatyan
- ベストアンサー率79% (70/88)
VB のバージョンが書いていないので...。 VB のバージョンや使用する IE や WebBrowser によっても方法が違ってきます。
- sekibunx
- ベストアンサー率61% (8/13)
VB.NETはあまり詳しくないので参考URLだけ貼っていきます. 機械翻訳なので,結構わかりにくいです. ただし,既定のブラウザではなく,IE固定になってしまいます. 方法: フォームのデータの POST を自動化します。 http://support.microsoft.com/kb/311293 C#でよければサンプルは以下のような感じです. whoisでokwave.jpを検索しています. イベントハンドラに処理を記述しておけば,IEが起動してPOSTします. (参照にCOMのMicrosoft Internet Controlsを追加してください) byte[] postData = ASCIIEncoding.ASCII.GetBytes("type=DOM&key=okwave.jp"); String headers = "Content-Type: application/x-www-form-urlencoded\r\n"; Console.WriteLine(headers); var ie = new SHDocVw.InternetExplorer(); ie.Visible = true; ie.Navigate2("http://whois.jprs.jp/", Type.Missing, Type.Missing, postData, headers);
- blueflower1024
- ベストアンサー率53% (16/30)
回答#1です。 すみません、書き忘れました。 例えばgoogleですと、検索リクエストはGETで行うことができ、POSTを行う必要はありません。よって、ブラウザに検索語を含んだURLを渡すだけで、ご希望の動作になりそうな気がします。 あと、カテゴリ欄はVBですね。見落としていました。 VBの「フォーム」に検索語を入力するということでも、上記の動作は実現できると思います。
補足
はい、VBのフォームです。 例はgoogleでしたが、もちろんGETでも検索はできるのですが、 あくまで本番用では、フォームのボタンonclickにて、サーバへPOSTを行い、 最終的に既定のブラウザでPOSTした処理の結果を表示したいのです。 GETであれば、proccess.startで引数にURLを与えれば、 サーバからのレスポンスをブラウザで受けることができるのですが、 POSTをするとなると、ブラウザがPOST処理を行わないと、 ブラウザにPOSTの結果が表示されないと思うのです。 その方法が知りたいのですが、ご存じではありませんか? たとえば、宅急便の発送管理ソフトウェアでは、追跡番号をPOSTして、 ブラウザで表示することができます。
- blueflower1024
- ベストアンサー率53% (16/30)
検索語を入力する「フォームのテキストボックス」というのが、何のことかわかりません。 ブラウザ以外の何かでしょうか。 技術的な点を回答すると、HTTP通信というのは、1本のTCPコネクションを開いて、 クライアント側がリクエストを送り、サーバはレスポンスを同じコネクションに 乗せて返します。 というわけで、 > 一度、ブラウザを立ち上げてそこからPOSTさせているというテクニックなどを > 使っているのでしょうか? というのが、一番近い回答だと思います。
お礼
.net VB 2010 expressになります。 あとでゆっくりと内容を見てみます。 取り急ぎ失礼致します。