アプリ版:「スタンプのみでお礼する」機能のリリースについて

フォームのテキストボックスに検索語を入れて、ボタンを押すと、
その結果を既定のブラウザで表示させたいです。

調べると、フォームがpostをして、「フォームがその結果を受け取る」というのは、
よく見るのですが、フォームがPOSTして、ブラウザが開いてサーバから返ってきた結果を
表示するというのはできるのでしょうか?

一度、ブラウザを立ち上げてそこからPOSTさせているというテクニックなどを
使っているのでしょうか?

例で言えば、一つのテキストボックス、一つのボタンで、
testと文字を入れて、ボタンを押すと、何かしらのPOST処理が行われて、
ブラウザが開いてgoogleの検索結果が表示される。

このような事をしたいのです、
なお、検索語は数字のみなので、2バイト文字は使いません。
よろしくお願いします。

A 回答 (4件)

回答#1です。


すみません、書き忘れました。

例えばgoogleですと、検索リクエストはGETで行うことができ、POSTを行う必要はありません。よって、ブラウザに検索語を含んだURLを渡すだけで、ご希望の動作になりそうな気がします。

あと、カテゴリ欄はVBですね。見落としていました。
VBの「フォーム」に検索語を入力するということでも、上記の動作は実現できると思います。

この回答への補足

はい、VBのフォームです。

例はgoogleでしたが、もちろんGETでも検索はできるのですが、
あくまで本番用では、フォームのボタンonclickにて、サーバへPOSTを行い、
最終的に既定のブラウザでPOSTした処理の結果を表示したいのです。

GETであれば、proccess.startで引数にURLを与えれば、
サーバからのレスポンスをブラウザで受けることができるのですが、

POSTをするとなると、ブラウザがPOST処理を行わないと、
ブラウザにPOSTの結果が表示されないと思うのです。

その方法が知りたいのですが、ご存じではありませんか?
たとえば、宅急便の発送管理ソフトウェアでは、追跡番号をPOSTして、
ブラウザで表示することができます。

補足日時:2010/11/12 22:01
    • good
    • 0

VB のバージョンが書いていないので...。



VB のバージョンや使用する IE や WebBrowser によっても方法が違ってきます。
    • good
    • 1
この回答へのお礼

.net VB 2010 expressになります。
あとでゆっくりと内容を見てみます。
取り急ぎ失礼致します。

お礼日時:2010/11/13 01:21

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);

参考URL:http://support.microsoft.com/kb/311293
    • good
    • 0

検索語を入力する「フォームのテキストボックス」というのが、何のことかわかりません。


ブラウザ以外の何かでしょうか。

技術的な点を回答すると、HTTP通信というのは、1本のTCPコネクションを開いて、
クライアント側がリクエストを送り、サーバはレスポンスを同じコネクションに
乗せて返します。

というわけで、
> 一度、ブラウザを立ち上げてそこからPOSTさせているというテクニックなどを
> 使っているのでしょうか?
というのが、一番近い回答だと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!