Win Command-Line HTTP Client (whttpcl) は Widnows 上でコマンドラインから使用する HTTP クライアントです。サーバーから送られてくるコンテンツとヘッダはパイプラインの出力として 得られます。ファイルに保存もできます。whttpcl を使う参考として画像掲示板からコンテンツを ダウンロードするサンプルスクリプトも添付してあります。 各コマンドスクリプトを説明したページ
次の表は推奨環境です。推奨環境に満たない場合、ソフト(特にスクリプト)が動作しなかったり、 動作中に不具合を起こすことがあります。
OS Windows Xp/2000
注意 1 Windows 95/98/98SE/Me での実行は推奨しません。リソース不足になりやすく スクリプトの中から複数の whttpcl を同時に使用すると異常終了したり、OS が停止することもあります。 注意 2 Windows NT で動作確認していません。 CPU 500MHz で動作する Celeron プロセッサ以上
注意 スクリプトを実行するのに必要な CPU パワーです。CPU パワーこれより少なくても 動作しますが、実使用に耐える応答性や実行時間が得られません。 必要メモリ量 RAM 256MByte 以上、仮想メモリ 384MByte 以上
注意 スクリプトを実行するのに必要なメモリ量です。RAM がこれより少なくても動作しますが スワップが増え、実使用に耐える応答性や実行時間が得られません。 画面サイズ 800 x 600 以上
注意 コマンドラインから使用する場合は制限はありません。 他に必要なソフト
Cygwin 必須ではないですが、添付したスクリプトを動作させるのに必要です。
次のようにして下さい。
- winhttpclient201.exe をダウンロードして実行してください。
- インストールソフトの指示に従って下さい。
- インストール後 winhttpclient201.exe は不要です。
ノート Windows 2000 で次のような 「エラー 1155: ファイル xxx を検出できません。」 が出てインストールできない場合、 Windows 2000 Service Pack 4 をインストールして下さい。Windows 2000 Service Pack 4 をインストールしない場合は Windows 2000 用の Windows Installer 2.0 (見つからない場合は Microsoft のサイトからキーワード "Windows Installer 2.0 Redistributable for Windows NT 4.0 and 2000" で US サイトを含めた検索をして下さい)をインストールしてください。
同様な方法で動作環境として推奨しませんが Windows NT 4.0 (SP6a) にインストールすることが出来ます。Windows Me/98SE/98/95 にも Windows Me/98SE/98/95 用 Windows Installer 2.0 をインストールすればインストールできます(動作環境として推奨しません)。
インストーラを実行したくない場合: インストールイメージ winhttpclient201.lzh を展開してください。 ソースコード等も全て含まれています。しかし、スタートメニューへの登録、デスクトップへのショートカット登録は一切しません。
スクリプトを使うためには cygwin をインストールする必要があります。 インストール方法は他の WEB サイトを参照してください。例えば @IT で紹介している 『真ゼロ円でできるXサーバ』が参考になります。 X サーバ向けですがスクリプトを使用するのにも 十分なセットがインストールされます。次の表はインストールの概略です。インストールをやり直したり すると、ウインドウの表示順が飛んだり、入れ替わるかもしれません。
ウインドウ タイトル 操作 WEB ブラウザ http://www.cygwin.comを開く WEB ブラウザ Cygwin Information and Installation Install cygwin now をクリック ブラウザ ファイルのダウンロード [開く(O)] をクリック Cygwin Setup [次へ(N)] をクリック Choose Installation Type (o) Install from Internet をクリックして選択
[次へ(N)] をクリックChoose Installation Directory [次へ(N)] をクリック Select Local Package Directory [次へ(N)] をクリック
注: 判読不能な表示がでることが有りますが修正の必要はありません。Select Connection Type (o) Use IE5 Settings をクリックして選択
[次へ(N)] をクリックChoose Download Site(s) ftp://ring.aist.go.jp をクリックして選択 (スクロールしてください)
[次へ(N)] をクリックSelect Package(s) [次へ(N)] をクリック
注: パッケージ選択をするとインストーラが反応しなくなることがあります。反応しなくても インストールは継続されています。 3 分から 5 分程度待ってください。Create Icon [次へ(N)] をクリック Cygwin Setup [OK] をクリック
winhttpclient201.exe をインストールしたディレクトリにある setup_cygwin.exe を起動してください。あるいは [スタート] から順に 開いて「Win Command-Line HTTP Client 2」-「Cygwin にセットアップ」を起動してください。 [インストール]ボタンをクリックすればインストール完了です。 アンインストールは[アンインストール]ボタンを押してください。 インストール/アンインストールはそれぞれシンボリックリンクを /usr/local/bin に作成/削除します。
whttpcl.exe は whttpcl.ini ファイルで設定を管理しています(*1)。INI ファイルは次のようになっています。ユーザー毎に設定を保存するため、 セクションはユーザー毎に作られます。ユーザーを特定できない場合は ".default" をユーザー名にします。各ユーザーセクションのキーは全て同一です。
(*1) インストール情報はレジストリに書き込まれます。
セクション キー 内容 [User.ユーザー名] CommandLine "コマンドラインの書式と同じフォーマットの文字列" PositionMain 左位置, 上位置, 右位置, 下位置
次は開発途上で見つかった問題・課題です。
- デフォルトの設定を読み込ませないようにしたい
-0 (ゼロ) または -q オプションを付けて起動してください。
- コマンドラインで使うにはどうしたらいいのですか
-q オプションを付けて起動してください。この場合でもウインドウは最小化した状態でタスクバーに表示されます。
- どうしても起動した後タスクバーに表示がでるのですか
出ます。-q オプションを付けても、ウインドウが最小化された状態になるだけです。 厳密な意味ではコマンドラインプログラムとは言えないのですが勘弁してください。
- / を使ったらオプションとして認識される様だ
/q と -q の両方の形式をオプションとして扱います。オプションの大文字、小文字も同一に扱います。/q, -q, /Q, -Q はすべて同じ意味です。
- User-Agent を設定したい
任意に設定できません。IE で使用している User-Agent をそのまま使用します。
- POST, PUT, HEAD メソッドを使いたい
POST メソッドは -fm POST を付けてください。 PUT メソッドは -fm PUT を付けてください。 HEAD メソッドは対応していません。 POST, PUT メソッドのパラメータは -fs string または -ff filename オプションで指定してください。
- -fs string オプション, -ff filename オプションの具体的な内容は?
-fs string オプションの string はFORMで送信する値を指定します。例えばthread=1000&page=2 のような文字列です。 -ff filename はファイルから間接的に送信します。大量のデータ送信をしたい場合は RFC を参照し送信内容を作成してください。
- ページを表示するためのユーザー名、パスワードを設定したい
-xu Username と -xp Password オプションを使ってください。コマンドラインで与えるので機密性が低くなるのは課題とさせてください。
- INI ファイルに記憶したデフォルト値を取り消したい
パラメータ部分に ... を指定して下さい。例えば -r ... の様にします。-0 オプションを与えたあと何もせず終了すると、 記憶されたパラメータは全て失われます。
- 再試行の場合、部分ダウンロードをするの?
現在部分ダウンロードはしません。最初からダウンロードします。
- 初回起動時に一部のボタンが隠れたり、エディトボックスが途切れていました
画面のプロパティにてフォントを「大きいフォント」にすると起きます。サイズ調整して下さい。
- どうも環境によって表示されるヘルプが違うようだ
whttpcla.htm に書き込めない場合、whttpcl.htm を表示します。whttpcla.htm は現在の設定についての情報を含んでいます。
- EXE ファイルの大きさが大きいようだ
ランタイムパッケージをスタティックリンクしたためです。
- ダウンロードしたページの漢字部分が全く読めない
漢字部分はコード変換していません。別のフィルタを使うかページの漢字コード体系を表示可能なエディタを使用して読めるようにして下さい。
- メッセージは英語表示にならないのですか?
日本語のままです。現在国際化対応をしていません。
- whttpcl.ism を使用したが InstallShield Express が「ファイルが欠落している」旨を報告した
whttpcl.ism は参考のために添付してあります。パッケージに含めるファイルが存在するパス等は当方の環境です。各自の環境に合わせて iwz ファイルを再構築してください。
ソースコードは Delphi7 Professional を使って書かれています。winhttpclient.bpg プロジェクトグループファイルを開いてコンパイルして下さい。特別なコンポーネントは使用していません。
Date Version Comment 2000.8.22 x.x.x.x テストバージョン。
限定配布版です。2000.9.12 1.0.0.0 正式リリース版です。
ヘルプファイル添付
Referer 対応
リトライ機能
HTTP コネクションが 1/50 の確率程度で失敗していたのを改良
ダウンロード中止可にした
画面のプロパティにてフォントを「大きいフォント」にした場合にある程度対応
コマンドライン記憶
画面表示位置記憶
ステータスペインの自動スクロール2000.9.12 1.0.1.0 正式リリース版です。
ヘルプファイルに若干の説明を追加
コマンドラインモード時にダウンロードの度に音が出ていたのを出なくした2000.9.14 1.0.2.0 内部バージョン。
コントロールレイアウトの微妙な変更
バージョン情報をリソースから取得するようにした
-? で起動した場合ヘルプを表示し直ちに終了するようにした
リソースの製品名を全体で使用している名前に統一2003.6.23 2.0.0.0 バグ修正
Delphi 7 でコンパイル
NM コンポーネントを Indy コンポーネントに変更
AHREF のバグを修正
メールアドレス変更2003.8.7 2.1.0.5 POST, GET メソッド追加など
POST, GET メソッド追加
INI ファイルを読み込まない -0 オプションを追加
User Agent を IE と同じにした
細かく補足しきれなかった例外を補足をした。注: "Unhandled exception" と出ることがあります。 これはメモリ不足など発生場所が多い例外を捕らえた結果です。今まではランタイムエラーか、アプリケー ションエラーになっていました。
Cygwin で動作するサンプルスクリプトを追加
アプリケーション 変更内容 whttpcl 1.x -> 2.1
・ 推奨 OS が Windows Xp/2000 となった。Windows 95/98/98SE/ME は推奨されなくなった。 ・ -0 オプションが新設され、初期値の扱いが変更された。 ・ -q オプションの挙動が変更され、初期値を読み込まなくなった。 ・ -fm {GET|POST|PUT} オプションと-fs string, -ff filename オプションが新設されメソッドが増えた。 ・ -xu username, -xp password オプションが新設され、認証が必要なページにアクセスできるようになった。 ・ User Agent を IE と同じにした。 ・ ダウンロードを始めた直後から、本体内容保存ファイルが作成されるようになった。以前はダウンロード 終了後で作成された。 ・ ランタイムが不要な EXE ファイルになった。 ・ 接続を確立しようとしている期間の CPU 負荷が下がった。 ・ 終了コード 5 が新設された。 ・ -? で生成される html ファイルの名前が小文字になった。 ・ -? で生成される html に使用している tag を変更した。 ・ コンパイラが Delphi7 になった。 ahref 1.x -> 2.1
・ 推奨 OS が Windows Xp/2000 となった。Windows 95/98/98SE/ME は推奨されなくなった。 ・ 正しく解析できないないバグを解消した。 ・ コンパイラが Delphi7 になった。
原則何が起きても使用者の責任において使用して頂くことになります。改良作業は行って行く方針ですが、必ず約束できない場合もあります。
本ソフトウエアを使った結果から発生した損失と係争を含むいかなる事態も、その質、額、規模に関わらず作者は補償せず関知しません。
本ソフトウエアは誰でも無償で使用できます。かつ使用できるようにしてください。
本ソフトウエアを実行する機械の種類、製造番号、台数、場所を限定しません。
特定の目的に合致したり、有効であることを保証しません。
本ソフトウエアは無欠陥を目指して作成されたものではありません。人命、医療施設、交通機関、原子力施設、軍事施設、公共施設等、社会的に影響が大きい安全装置、施設、人員に関わる構成物として使用することはできません。また、取引あるいは係争上の計量・証拠作成手段として使用できることを保証しません。
本ソフトウエアに欠陥、改良点があったとしてもそれを発見、改良する義務を作者は負いません。かつ、あらかじめ欠陥、改良点があったとしてもそれを作者は公開する義務を負いません。
本ソフトウエアのソースコードは原則自由に使用して頂いて結構です。解析、改良、転用を認めます。しかし、ソースコードに関する解説等を行う義務を作者は負いません。ソースコードが特定の目的を満たすことも作者は保証しません。作者以外によるソースコードの改変から発生したいかなる事態も作者は関知しません。
本ソフトウエアのソースコードをコンパイルして得られたファイルに対し、ソースコードの添付及びソースコード利用者による変更箇所の開示を強制しません。
MS-DOS, Windows はマイクロソフト社の登録商標です。Delphi5, Delphi7 はボーランドソフトウエア社の登録商標です。Celeron は Intel 社の登録商標です。InstallShield Express は InstallShield Software 社の登録商標です。Cygwin は Red Hat 社の登録商標です。