- - PR -
WEBブラウザの手作業を自動化
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-09 11:02
みなさん、こんにちは。
以下のシステムが、WebApplicationサーバの 付属クライアント開発ツールを用いて開発済みです。 クライアントのWEBブラウザから、ユーザーが手作業でCSVデータファイルを指定。 ユーザーがページ上で、アップロードボタンを押下することで、 POSTメソッドを用いて、サーバーへUPLOAD。 その際CSVファイルデータをデータベースへも登録。(fromタグでactionを指定) 同じ仕組みをVisual Basic/.Net/WSH等の 開発ツールを用いてWEBブラウザを表示せず、影で 自動実行するPGの開発を検討しています。 (ユーザーの作業負担を軽減する目的) UPLOADを手作業で行ってもらう事で納得してもらう事を 考えていますが、選択肢として自動処理PGも考えている状況です。 そこで、 Visual Basic/.Net/WSH等開発ツールで 1.手作業で行っているユーザID/パスワードを入力するFORM認証と結果 を自動制御できるか。 2.手作業で行っているCSVファイル指定してボタン押下しUPLOADとその結果 を自動制御できるか 3.データベースへの登録処理の実行とその成否 を自動制御できるか 質問が具体的でないかもしれませんがすみません。 サーバー solaris 某WebApplicationサーバー クライアント Windows 2000 | ||||||||
|
投稿日時: 2005-03-09 11:43
単純にHTTPで通信を行うプログラムを作成すればよいと思います。
ブラウザとはHTTPのリクエストとレスポンスを可視化しているだけですし。 そのプログラムでWEBブラウザをエミュレートして 自動実行したいアクションと同様のリクエストを送り レスポンスをブラウザ同様に処理すればいいと思います。 レスポンスはクッキー、リクエストはマルチパート・POSTメソッドあたりをサポートすれば、 その案件は対応可能ではないでしょうか。 HTTPをサポートしたAPIがあれば、言語は問わないと思います。 | ||||||||
|
投稿日時: 2005-03-16 13:16
かつのりさんこんにちは。
私は、HTTP通信のPGは初めてでよく分かっていません。 VB.NETで単純にサーバーのあるフォルダにUPLOADまではできたのですが、 (WebClinetのopenwriteを使用してできました。) inputタグのACTIONで指定するcgiの起動方法と 戻り値の受け取り方法などどのようなクラスを用いて PGすればよいのでしょうか? | ||||||||
|
投稿日時: 2005-03-17 12:40
HttpWebRequestクラスでお望みのことができるか調べてみるといいかも。 | ||||||||
|
投稿日時: 2005-03-17 14:17
べるさん。こんにちは
正確には、inputタグnのACTIONで指定していたのは*.jspでした。 現在、WEBブラウザから、UPLOADボタンを押してファイル転送し、同時に サーバ側jspで、データベースに登録しています。 やりたい事は、VB.NETのHTTPWebRequest等でモジュールを作成し、ブラウザと同じ処理を実行しデータベースに登録したいのです。 WEBブラウザでは、登録に失敗すると、エラーページが表示されるので、 モジュールでも、エラーを拾って、何らかのエラー処理を行いたいのです。 WEB技術について詳しくないので、少し困っています。 | ||||||||
|
投稿日時: 2005-03-17 14:17
べるさん。こんにちは
正確には、inputタグnのACTIONで指定していたのは*.jspでした。 現在、WEBブラウザから、UPLOADボタンを押してファイル転送し、同時に サーバ側jspで、データベースに登録しています。 やりたい事は、VB.NETのHTTPWebRequest等でモジュールを作成し、ブラウザと同じ処理を実行しデータベースに登録したいのです。 WEBブラウザでは、登録に失敗すると、エラーページが表示されるので、 モジュールでも、エラーを拾って、何らかのエラー処理を行いたいのです。 WEB技術について詳しくないので、少し困っています。 | ||||||||
|
投稿日時: 2005-03-17 14:51
特にヘッダなどを考慮しない(IEと同じで)良いのならば、一番簡単なのは、べるさんも仰ってるWebClientのUploadFileメソッドでしょう。
処理の結果は、成功した場合、メソッドの返値としてバイト配列が返されますので、 これを適切なエンコーディングクラスでGetStringしてやればHTMLが取得できます。 失敗した場合(ステータスコードが403になったりで)、WebExceptionが投げられます。 この例外をキャッチしてStatusプロパティを見ればエラーの原因(名前解決ができなかったなど)が、 またエラーがWebExceptionStatus.ProtocolErrorの場合、 さらにResponseプロパティにサーバからのレスポンスが入っています。 この値をHttpWebResponse型にキャストしてやることで、 StatusCodeプロパティでどんなコードで失敗したのか(403とか501とか)、 またGetResponseStreamを使って帰ってきたHTMLを取得できたりします。 //あれ、こうなると最早WebRequestでやるのと大差ないな……。 |
1