.版本 2
.程序集 HTTP读文件程序集
.程序集变量 程序集_完整网址, 文本型
.程序集变量 程序集_访问方式, 文本型, , , "GET" or "POST",为空默认"GET"
.程序集变量 程序集_代理地址, 文本型
.程序集变量 程序集_附加协议头, 文本型
.程序集变量 程序集_页面内容, 字节集
.程序集变量 程序集_线程号, 整数型
.程序集变量 程序集_提交信息, 文本型, , , "POST"专用
.子程序 HTTP读文件字集, 字节集, , 有可能线程阻塞,请在外部加超时判断
.参数 参数_完整网址, 文本型
.参数 参数_访问方式, 文本型, 可空, "GET" or "POST",为空默认"GET"
.参数 参数_代理地址, 文本型, 可空
.参数 参数_附加协议头, 文本型, 可空
.参数 参数_提交信息, 文本型, 可空, "POST"专用
.参数 参数_超时值, 整数型, 可空
.局部变量 开始时间, 整数型
程序集_完整网址 = 参数_完整网址
程序集_访问方式 = 参数_访问方式
程序集_代理地址 = 参数_代理地址
程序集_附加协议头 = 参数_附加协议头
程序集_提交信息 = 参数_提交信息
程序集_页面内容 = 取空白字节集 (0)
.如果真 (是否为空 (参数_超时值) 或 参数_超时值 = 0)
参数_超时值 = 8
.如果真结束
开始时间 = 取启动时间 ()
程序集_线程号 = 创建线程 (0, 0, &子程序_读网页, 0, 0, 程序集_线程号)
.判断循环首 (程序集_线程号 > 0)
处理事件 ()
.如果真 (取启动时间 () - 开始时间 > 参数_超时值 × 1000)
销毁线程 (程序集_线程号, 0)
处理事件 ()
程序集_页面内容 = 取空白字节集 (0)
程序集_线程号 = 0
.如果真结束
.判断循环尾 ()
返回 (程序集_页面内容)
.子程序 子程序_读网页
.局部变量 局部_Internet句柄, 整数型
.局部变量 局部_Internet连接句柄, 整数型
.局部变量 局部_HTTP请求句柄, 整数型
.局部变量 局部_域名, 文本型
.局部变量 局部_页面地址, 文本型
.局部变量 局部_整数变量1, 整数型
.局部变量 局部_整数变量2, 整数型
.局部变量 局部_逻辑变量, 逻辑型
.局部变量 局部_文本变量, 文本型
.局部变量 局部_字节集变量, 字节集
局部_域名 = 子程序_取域名 (程序集_完整网址)
局部_页面地址 = 子程序_取页面地址 (程序集_完整网址)
' 建立基础连接
.如果 (删全部空 (程序集_代理地址) = “”)
局部_Internet句柄 = Internet激活 (到文本 (“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”), 1, “”, “”, 0)
.否则
局部_Internet句柄 = Internet激活 (到文本 (“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”), 3, 程序集_代理地址, “”, 0)
输出调试文本 (到文本 (“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”), 3, 到文本 (程序集_代理地址))
.如果结束
.如果真 (局部_Internet句柄 = 0)
程序集_页面内容 = 取空白字节集 (0)
返回 ()
.如果真结束
局部_Internet连接句柄 = Internet建立连接 (局部_Internet句柄, 局部_域名, 子程序_取端口 (程序集_完整网址), “”, “”, 3, 0, 0)
.如果真 (局部_Internet连接句柄 = 0)
程序集_页面内容 = 取空白字节集 (0)
返回 ()
.如果真结束
局部_HTTP请求句柄 = Http创建请求 (局部_Internet连接句柄, 程序集_访问方式, 到文本 (局部_页面地址), “HTTP/1.1”, 到文本 (“”), 到文本 (“”), 2147483648, 0)
.如果真 (局部_HTTP请求句柄 = 0)
程序集_页面内容 = 取空白字节集 (0)
返回 ()
.如果真结束
' 补充协议头
.如果真 (寻找文本 (程序集_附加协议头, “Accept: ”, 1, 真) = -1)
程序集_附加协议头 = 程序集_附加协议头 + “Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-sh