HTTP メッセージの送受信を行う ActiveX DLL です
ver1.1.0.4 (
2006/04/12
) ConnectExBin(),ConnectEx() 関数で HTTP メソッドの解析をしていなかったというバグの修正
ver1.1.0.3 (
2006/03/14
) バイナリ処理(HTTPResponse がSJIS以外の EUCとか JIS の場合)への対応として ConnectExBin() 関数を新設。ConnectEx()関数は、ConnectExBin()関数のラッパ関数となった(Moji_Chk.dll 2.1.0.2 以上必要)
ver1.1.0.2 (
2005/10/26
) タイマー停止時(処理以外時)のデータ受信を無視するようにした。タイムアウト時は(Keep-Alive設定とか無視して)切断するようにした
ver1.1.0.1 (
未公開
) HTTP メソッドが HEAD メソッドの場合は、Response が正常かどうかの解析をしないようにした(Content-Length が与えられるがボディがないため)
ver1.1.0.0 (
未公開
) TargetPort() メソッドが有効でなかったというヒデブなバグを修正
ver1.0.0.9 (
未公開
) CloseConnection() メソッドを追加
ver1.0.0.8 (
未公開
) バグ・フィックス
ver1.0.0.7 (
未公開
) バグ・フィックス
ver1.0.0.6 (
未公開
) バグ・フィックスとタイマー処理の内部仕様の変更
タイムアウトの最大値とデフォルト値の変更
ver1.0.0.5 (
未公開
) バグ・フィックス
ver1.0.0.4 (
未公開
) バグ・フィックスと Chunk エンコーディングに対応した
moji_chk.dll が必要になりました
ver1.0.0.3 (
2004/06/27
) バグ・フィックス
ver1.0.0.2 (
未公開
) 新関数を追加
ver1.0.0.1 (
未公開
) Keep-Alive を標準仕様とした
ver1.0.0.0 (
2003/11/28
) 最初のバージョン
内容
HTTP メッセージの送受信を行う ActiveX DLL です。
それだけです。
現在(ver1.0.0.0)では、Keep-Alive を実装していないので、同一ホストに対して複数メッセージを発行する場合は、処理が重たいでしょう。
ver1.0.0.1 から Keep-Alive のみにしたので、ちょっとは軽くなったでしょう...しかし、tcp コネクションは一本なので、高速処理は望めないでしょう。
ver1.0.0.4 からは、レスポンス・データを解析し、ステータスコードが「100」なら待機(といってもタイマーの制限があるけど)したり、Content-Length 分のデータが着たらタイマーを停止したり、Chunk エンコードされていたら 0byte の塊が着たらタイマーを停止させたり、少しは反応が素早くなったと思う。
CreateObject に渡す文字列
sComHTTP.conn
Set obj = CreateObject("sComHTTP.conn")
sComHTTP.Conn クラス
メソッド/プロパティ一覧
setHTTPMethod(入力データ)
HTTP メソッドをセットします
返り値 = getHTTPMethod
セットされている HTTP メソッドを返します
setSourcePort(入力データ)
送信元ポートをセットします
デフォルトは「0」
「0」の場合、システムが適当に割り当てます。
同一ホスト/ポートへ接続するとき、送信元ポートを固定にすると、接続できなくなりますので注意をしてください。
返り値 = getSourcePort
セットされている送信元ポートを返します
setTargetAddress(入力データ)
送信先ホストを指定します
返り値 = getTargetAddress
セットされている送信先アドレスを返します
setTargetPort(入力データ)
送信先ポートを指定します
デフォルトは「80」
返り値 = getTargetPort
セットされている送信先ポートを返します
setTimeout(入力データ)
タイムアウト(秒)を指定します。
デフォルトは「30」
最大は Long 型ぐらい
返り値 = getTimeout
セットされているタイムアウト時間を返します
返り値 = Connect(第一引数,第二引数)
第一引数 : URL です。HTTP リクエスト・メッセージの一行目の第二引数そのまんまです。
第二引数 : HTTP リクエスト・メッセージのボディをそのまんまです。
返り値 : HTTP レスポンス・メッセージそのまんま!?です。
Chunk エンコーディングされていたら、デコードしておきます。
また「HTTP1/1 100 Continue」ヘッダがあったら削除されたものが返ります。
返り値 = ConnectEx(第一引数)
第一引数 : HTTP リクエスト・メッセージそのまんまです(UNICODE[UCS-2][UTF16])。
返り値 : HTTP レスポンス・メッセージそのまんま!?です(UNICODE[UCS-2][UTF16])。
Chunk エンコーディングされていたら、デコードしておきます。
また「HTTP1/1 100 Continue」ヘッダがあったら削除されたものが返ります。
返り値 = ConnectExBin(第一引数)
第一引数 : HTTP リクエスト・メッセージそのまんまです(非UNICODE)(SJIS)(JIS)(EUC)(UTF8)。
返り値 : HTTP レスポンス・メッセージそのまんま!?です(非UNICODE)(SJIS)(JIS)(EUC)(UTF8)。
Chunk エンコーディングされていたら、デコードしておきます。
また「HTTP1/1 100 Continue」ヘッダがあったら削除されたものが返ります。
CloseConnection()
接続状態なら、強制的に切断する
動作環境
直接的に必要な環境は以下です。
VisualBASIC6.0 の(WinSock.ocx を含む)汎用的なランタイムが必要。
moji_chk.dll
が必要
使用方法
まず、VisualBASIC6.0 のランタイムを
Vector
などからダウンロードしてインストールします。
(ランタイムが既にインストールされていれば必要ありません)
ダウンロードしたファイルを解凍しします。
(LHAは、吉崎栄泰氏が、著作権を所有)
解凍した出来たディレクトリの、"DLL" 以下のファイルは、COM(ActiveX DLL)です。
sComHTTP.dll をインストールするディレクトリへコピーします。
コマンドプロンプト で、sComHTTP.dll をコピーしたディレクトリで、"RegSvr32.exe sComHTTP.dll" を実行し、レジストリに登録します。
(RegSvr32.bat を DLL と同一ディレクトリへコピーして、実行しても同様のことが可能です)
以上で、COM コンポーネントとしての、sComHTTP.dll は登録が完了です。
COM アクセスが可能なものなら、sComHTTP.dll を利用する事が可能です。
免責など
著作権は保持します。(とりあえず)
このソフトを使用したことによって生じた、
いかなる損害についても責任は持ちません。
ソースコードについても、各自の責任において改変する事については、自由おこなって頂いて結構です。
「参考になったよ」メールを投げてくれると嬉しいです。(*^_^*)
Version1.1.0.4
DownLoad
(sComHTTP.lzh as 21,013byte) (
sComHTTP.lzh.base64
)
これから....
Keep-Alive へ対応
元々が、Server ヘッダ収集プログラムの一コンポーネントのつもりなので...Keep-Alive で本家のプログラムに得がないんだなぁ〜
mail to active@window.goukaku.com