- PR -

WEBブラウザの手作業を自動化

1
投稿者投稿内容
チャベス
会議室デビュー日: 2005/03/08
投稿数: 14
投稿日時: 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
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-03-09 11:43
単純にHTTPで通信を行うプログラムを作成すればよいと思います。
ブラウザとはHTTPのリクエストとレスポンスを可視化しているだけですし。

そのプログラムでWEBブラウザをエミュレートして
自動実行したいアクションと同様のリクエストを送り
レスポンスをブラウザ同様に処理すればいいと思います。
レスポンスはクッキー、リクエストはマルチパート・POSTメソッドあたりをサポートすれば、
その案件は対応可能ではないでしょうか。

HTTPをサポートしたAPIがあれば、言語は問わないと思います。
チャベス
会議室デビュー日: 2005/03/08
投稿数: 14
投稿日時: 2005-03-16 13:16
かつのりさんこんにちは。

私は、HTTP通信のPGは初めてでよく分かっていません。
VB.NETで単純にサーバーのあるフォルダにUPLOADまではできたのですが、
(WebClinetのopenwriteを使用してできました。)

inputタグのACTIONで指定するcgiの起動方法と
戻り値の受け取り方法などどのようなクラスを用いて
PGすればよいのでしょうか?

べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2005-03-17 12:40
引用:
VB.NETで単純にサーバーのあるフォルダにUPLOADまではできたのですが、
(WebClinetのopenwriteを使用してできました。)

UploadFileメソッドなんてのもあります。

引用:
inputタグのACTIONで指定するcgiの起動方法と
戻り値の受け取り方法などどのようなクラスを用いて
PGすればよいのでしょうか?

戻り値とは、レスポンスのHTMLということですか?
HttpWebRequestクラスでお望みのことができるか調べてみるといいかも。
チャベス
会議室デビュー日: 2005/03/08
投稿数: 14
投稿日時: 2005-03-17 14:17
べるさん。こんにちは

正確には、inputタグnのACTIONで指定していたのは*.jspでした。

現在、WEBブラウザから、UPLOADボタンを押してファイル転送し、同時に
サーバ側jspで、データベースに登録しています。
やりたい事は、VB.NETのHTTPWebRequest等でモジュールを作成し、ブラウザと同じ処理を実行しデータベースに登録したいのです。

WEBブラウザでは、登録に失敗すると、エラーページが表示されるので、
モジュールでも、エラーを拾って、何らかのエラー処理を行いたいのです。

WEB技術について詳しくないので、少し困っています。
チャベス
会議室デビュー日: 2005/03/08
投稿数: 14
投稿日時: 2005-03-17 14:17
べるさん。こんにちは

正確には、inputタグnのACTIONで指定していたのは*.jspでした。

現在、WEBブラウザから、UPLOADボタンを押してファイル転送し、同時に
サーバ側jspで、データベースに登録しています。
やりたい事は、VB.NETのHTTPWebRequest等でモジュールを作成し、ブラウザと同じ処理を実行しデータベースに登録したいのです。

WEBブラウザでは、登録に失敗すると、エラーページが表示されるので、
モジュールでも、エラーを拾って、何らかのエラー処理を行いたいのです。

WEB技術について詳しくないので、少し困っています。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-03-17 14:51
特にヘッダなどを考慮しない(IEと同じで)良いのならば、一番簡単なのは、べるさんも仰ってるWebClientのUploadFileメソッドでしょう。

処理の結果は、成功した場合、メソッドの返値としてバイト配列が返されますので、
これを適切なエンコーディングクラスでGetStringしてやればHTMLが取得できます。
失敗した場合(ステータスコードが403になったりで)、WebExceptionが投げられます。
この例外をキャッチしてStatusプロパティを見ればエラーの原因(名前解決ができなかったなど)が、
またエラーがWebExceptionStatus.ProtocolErrorの場合、
さらにResponseプロパティにサーバからのレスポンスが入っています。
この値をHttpWebResponse型にキャストしてやることで、
StatusCodeプロパティでどんなコードで失敗したのか(403とか501とか)、
またGetResponseStreamを使って帰ってきたHTMLを取得できたりします。

//あれ、こうなると最早WebRequestでやるのと大差ないな……。
1

スキルアップ/キャリアアップ(JOB@IT)