- - PR -
WEBサーバーとのやりとりの自動化
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-08 12:52
みなさんこんにちは
WEBサーバーへCSVファイルを転送する仕組みを実装することになりました。 1.送信クライアントから、CSVファイルをWEBサーバーにアップロード 2.アップロードには、HTTPS通信を使用。 3.WEBサーバー認証は、FORM認証(ユーザID/パスワード固定) 4.アップロード後、データベースにファイルデータを登録。 (既に実装すみ) 1〜4の仕組みを、手作業なしの自動実行で実現は可能でしょうか? (ユーザーがブラウザを使用して行う代わりに、自動実行を考えています。) Visual Basic 6.0 または、.Netでの開発を考えています。 私としては、HTMLファイル内に、WEBサーバーへのリクエストと リクエスト結果の受け取りといった処理をJAVASCRIPT等で記述する方法を Visual Basic等のツールでどう作りこんでいくかが よく分からない点で悩んでいます。 送信クライアント Windows 2000 pro サーバー Windows 2000 某WEB アプリケーション サーバ使用 | ||||||||
|
投稿日時: 2005-03-08 16:09
「JAVASCRIPT等で記述する方法を Visual Basic等のツールでどう作りこんでいくか」というのが意味がわからなかったのですが、最終的な成果物としては JavaScript をイメージしているのでしょうか?
JavaScript だけでローカルのファイルを自動的にアップロードしてしまうような仕組みは作れません。ローカルのファイルを勝手にアップロードされてしまってはセキュリティ上支障がありますので。 VBや.Netを使った場合はソケットや適切なライブラリを使うことで実装できるかと存じます。具体的にどうすれば良いかわからないのであればも.Netの掲示板に質問してみてはいかがでしょうか? http://www.atmarkit.co.jp/bbs/phpBB/viewforum.php?forum=7 なお、Javaの世界になりますが JMeter を使えばプログラミングレスで実現できます。(特にJavaの知識は必要ありません) http://jakarta.apache.org/jmeter/ | ||||||||
|
投稿日時: 2005-03-09 10:56
インギさんありがとうございました。
.Netの掲示板でも聞いてみます。 | ||||||||
|
投稿日時: 2005-03-20 19:10
割り込みで申し訳ありません。 Jmeterを推薦されていますが、JMeterはテスト負荷ツールですよね。 この場合、テスト計画を保存したとしても、自動で実行するアプリケーションとはいえないような気がします。 と、言う事でJavaで上記を実装しようとするとどうなるのかなー、と考えてみたんですが、 SWTでcommonsを駆使して実装? commons-httpclient,commons-io,commons-netあたりか・・・ しかし、Javaプログラムのサービス化って簡単なんだっけ? 辺りでめげてしまいました。 Javaでやろうとすると、どうなんでしょうか? 皆さんのご意見を頂ければ幸いです。 | ||||||||
|
投稿日時: 2005-03-23 10:36
私もWeb上での作業の自動化に取り組んでおります。 Javaには、URLConnectionやHttpURLConnectionといった クラスが存在しますので、それを利用すればPure Javaで 作れそうです。とりあえずFORM認証には成功しました。
サービス化というのは、NTサービスということでよろしいで しょうか? それでしたら、フリーで「みどりちゃんソフト」という のが存在します。WMidoriService (Win32App Midori Service) というのがそれです。 http://www003.upp.so-net.ne.jp/midori/midosoft.ja.html | ||||||||
|
投稿日時: 2005-03-24 19:38
とりあえず、HTTPSではなくHTTPですが、
(しかもJAVAで)サンプルコードを作成いたしました。 参考にしていただければ幸いです。 拙いコードですので、読みづらいところや誤りなども あるかと思われます。そのときはご容赦ください。 URLやIDは適当です。 ------------------------------------------------------------- import java.net.*; import java.io.*; class autoweb extends Thread { public static void main(String[] args) { Thread thread = new Thread(new autoweb()); // スレッドを開始 thread.start(); } public void run() { StringBuffer sHTML = new StringBuffer(); String buffer = ""; // WEBサーバに転送するバッファ try { //////////////////////////////// // ログインページを表示する // //////////////////////////////// String sURL = "http:// 〜 /login.html"; // ログインページのURL // // WEBサーバと通信をする(POST) URL url = new URL(sURL); URLConnection URLConn = url.openConnection(); URLConn.setDoInput(true); // 入力可 URLConn.setDoOutput(true); // 出力可 URLConn.setUseCaches(false); // キャッシュ不可 URLConn.setRequestProperty("Content-type","application/x-www-form-urlencoded"); URLConn.setRequestProperty("Content-length","" + buffer.length()); URLConn.connect(); // 接続 BufferedReader reader = new BufferedReader( new InputStreamReader( URLConn.getInputStream() ) ); String line = ""; while (line != null) { line = reader.readLine(); System.out.println(line); } reader.close(); // 1秒間の待機 sleep(1000); ////////////////////////// // FORMログインをする // ////////////////////////// // POST用URL sURL = "http:// 〜 /certify.html"; // 認証ページのURL // // WEBサーバと通信をする(POST) url = new URL(sURL); URLConn = url.openConnection(); URLConn.setDoInput(true); // 入力可 URLConn.setDoOutput(true); // 出力可 URLConn.setUseCaches(false); // キャッシュ不可 URLConn.setRequestProperty("Content-type","application/x-www-form-urlencoded"); URLConn.setRequestProperty("Content-length","" + buffer.length()); URLConn.connect(); // 接続 // ID、パスワードを設定する buffer = "ID=01234&PASS=ABCDE"; // バッファの出力 DataOutputStream out = new DataOutputStream(URLConn.getOutputStream()); out.writeBytes(buffer); out.flush(); out.close(); // // POSTコマンドを発行したので、次にその結果を // 読み込む。 // reader = new BufferedReader( new InputStreamReader( URLConn.getInputStream() ) ); line = ""; while (line != null) { line = reader.readLine(); System.out.println(line); } reader.close(); } catch (Exception e) { e.printStackTrace(); } } } | ||||||||
|
投稿日時: 2005-03-25 13:44
ありがとうございます。 参考にさせて頂きます。m(__)m |
1