我试图制作一段打开http连接的代码。不过,网页可能会以纯文本或 gzip 格式传输。结果,具有实用主义的代码尝试以纯文本形式打开,如果失败并收到异常,则尝试将其视为 gzip 编码。
URL 是唯一的变量。例如,尝试使用 URL = ' http://releases.llvm.org/6.0.0/tools/clang/docs/ClangCommandLineReference.html '。
user::catch(
(
user::http_open(URL, DataStream, []),
user::load_html(stream(DataStream), Terms, []),
user::close(DataStream)
),
_
,
(
user::open_any(URL, read, GZipDataStream, CloseIt, [encoding(gzip), string(atom)]),
/*user::http:encoding_filter(gzip, DataStream, GZipDataStream),*/
user::load_html(stream(GZipDataStream), Terms, []),
user::close_any(CloseIt)
)
)
不幸的是,catch 的恢复部分不起作用。
请问有什么建议吗?