-
Notifications
You must be signed in to change notification settings - Fork 7
/
httpc.txt
152 lines (104 loc) · 5.09 KB
/
httpc.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
httpc.dll
概要:
SAORI規格のhttpクライアント。
Web上の各種データをHTTPで取得する。
説明:
引数の指定により、4通りの動作をする。
・引数なし
インターネットに接続できるかどうかの確認。
接続できるなら1、できないなら0を返す。
・引数1つ
第1引数にURLを指定、取得したものをそのまま返す。
・引数2つ
この場合に限り、バイナリデータも扱える。
第1引数にURLを指定、
取得したものを第2引数のファイル名で保存。
成功したら1、失敗したら0を返す。
・引数3つ
第1引数にURLを指定、
取得したものから、第2・3引数で囲まれる範囲を返す。
例えば、
第1引数が http://www.yahoo.co.jp/
第2引数が href="
第3引数が "
だったとすると、ヤフーのトップページから、一番最初にあるリンク先URLを返す。
また、複数返値を使って2つ目以降のリンクも取得できる。
文字コード:
引数が1か3の使い方のとき、文字コードは自動判別される。
EUC か JIS であった場合はShiftJISに変換して返される。
EUCの判別には失敗することがある。この場合、後述のオプションを使用のこと。
オプション(暫定):
引数が1か3の使い方のとき、最初の http://~ の前に以下のオプションを指定できる。
euc そのページの文字コードが EUC であることを明示。
jis 同じく JIS であると明示。
sjis 同じく ShiftJIS であると明示。
utf-8 同じく UTF-8 であると明示。
utf-16be 同じく UTF-16BE であると明示。
utf-16le 同じく UTF-16LE であると明示。
erase_tag ページ内のタグを消去する(暫定)
translate_tag タグをさくらスクリプトに翻訳する(極めて暫定)
例えば
第1引数が erase_tag
第2引数が http://www.yahoo.co.jp/
だと、ヤフーのトップページからタグを消去したものを取得できる。
動作は引数1つの場合と同じ。
erase_tagの指定時、
引数3つの「囲まれる範囲の指定」は、タグ消去後の範囲が対象となる(暫定動作。消去前に変更するかも)というかタグいじり系は別のSAORIに分けるか、
改行コード(暫定):
引数が1か3の使い方のとき、改行コードは消去される。
これはSAORI の規格上、改行コードがそのままでは返せないため。
非同期取得:
最初のhttp://~や各種オプションよりも前に、
第1引数に bg
第2引数に 識別子(適当な文字列)
とし、それ以降に通常呼び出し同様の引数を並べると、取得をバックグラウンドで行います。
httpcの呼び出し自体は、取得を待たず、すぐに処理を返します。
取得が終了した後、DirectSSTPで通知を行います。
その際のイベントは以下のようになります。
ID OnHttpcNotify
ref0 呼び出し時に設定した識別子
ref1 (空欄)
ref2 戻り値
その他:
SAORIの使い方は各栞のドキュメントを参照のこと。
プロクシ等の設定はIEで設定されたものを使用する(たぶん)。
注意:
ダウンロード中は栞へリクエストした状態のまま本体は停止することになる。
よって、巨大なファイルを指定してはいけない。
免責:
このdllを使用した結果いかなる不具合を受けたとしても、作者は一切責任をとらないものとする。
謝辞:
wininetの用法について参考にさせていただきました。
http://tokyo.cool.ne.jp/masapico/
jis, sjis, eucの判別、変換について参考にさせていただきました。
http://www.mars.dti.ne.jp/~torao/program/appendix/japanese.html
UTFの変換についてコードを引用させていただきました。
http://kamoland.com/comp/unicode.html
BOMについてなど参考にさせていただきました。
http://seclan.dll.jp/ccutffaq.htm
ありがとうございました。
履歴:
02/03/10 初版。
02/03/22 文字コードの自動判別&変換を行うように。
02/04/12 改行コードを消去。オプション群。
03/01/19 eucの明示指定が無効/異常だった問題を修正
03/03/19 charset=??? を読んでいなかった問題を修正。
UTF-8とUTF-16BE対応。あとencoding=??? も読む。
作者:
櫛ヶ浜やぎ
連絡先:
ここ↓の掲示板か、あるいは記載されているメールアドレスへ。
http://www.geocities.co.jp/SiliconValley-Cupertino/8536/