易语言 http读文件

时间:2015-09-07 06:46:14
【文件属性】:
文件名称:易语言 http读文件
文件大小:45KB
文件格式:DOC
更新时间:2015-09-07 06:46:14
易语言 http读文件 .版本 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-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*” + #换行符 .如果真结束 .如果真 (寻找文本 (程序集_附加协议头, “Referer: ”, 1, 真) = -1) 程序集_附加协议头 = 程序集_附加协议头 + “Referer: ” + 程序集_完整网址 + #换行符 .如果真结束 .如果真 (寻找文本 (程序集_附加协议头, “Accept-Language: ”, 1, 真) = -1) 程序集_附加协议头 = 程序集_附加协议头 + “Accept-Language: zh-cn” + #换行符 .如果真结束 ' 附带信息发送请求 .判断开始 (程序集_访问方式 = “” 或 程序集_访问方式 = “GET”) Http发送请求 (局部_HTTP请求句柄, 程序集_附加协议头, 取文本长度 (程序集_附加协议头), “”, 0) .判断 (程序集_访问方式 = “POST”) .如果真 (程序集_提交信息 ≠ “”) 程序集_附加协议头 = 程序集_附加协议头 + “Content-Type: application/x-www-form-urlencoded” + #换行符 程序集_附加协议头 = 程序集_附加协议头 + “Content-Length: ” + 到文本 (取文本长度 (程序集_提交信息)) + #换行符 .如果真结束 Http发送请求 (局部_HTTP请求句柄, 程序集_附加协议头, 取文本长度 (程序集_附加协议头), 程序集_提交信息, 取文本长度 (程序集_提交信息)) .默认 程序集_页面内容 = 取空白字节集 (0) 返回 () .判断结束 ' 读取页面文本 局部_逻辑变量 = 真 局部_整数变量1 = 0 .判断循环首 (局部_逻辑变量) 局部_字节集变量 = 取空白字节集 (512) 处理事件 () Internet读文件 (局部_HTTP请求句柄, 局部_字节集变量, 取字节集长度 (局部_字节集变量), 局部_整数变量1) .如果 (局部_整数变量1 = 0) 局部_逻辑变量 = 假 .否则 程序集_页面内容 = 程序集_页面内容 + 取字节集左边 (局部_字节集变量, 局部_整数变量1) .如果结束 .判断循环尾 () ' 取服务器回传协议头 局部_文本变量 = 取空白文本 (1024) HTTP查询信息 (局部_HTTP请求句柄, 22, 局部_文本变量, 1024, 0) ' 关闭句柄 Internet关闭句柄 (局部_HTTP请求句柄) Internet关闭句柄 (局部_Internet连接句柄) Internet关闭句柄 (局部_Internet句柄) ' 设置COOKIE .如果真 (寻找文本 (局部_文本变量, “Set-Cookie: ”, 1, 真) > 0) 局部_整数变量1 = 打开内存文件 () 写出文本 (局部_整数变量1, 局部_文本变量) 移到文件首 (局部_整数变量1) .判断循环首 (是否在文件尾 (局部_整数变量1, 假) = 假) 局部_文本变量 = 读入一行 (局部_整数变量1) .如果真 (寻找文本 (局部_文本变量, “Set-Cookie: ”, 1, 真) > 0) 局部_文本变量 = 文本替换 (局部_文本变量, 1, 12, ) 局部_整数变量2 = 寻找文本 (局部_文本变量, “=”, 1, 真) 设置COOKIE (“http://” + 局部_域名, 取文本左边 (局部_文本变量, 局部_整数变量2 - 1), 取文本右边 (局部_文本变量, 取文本长度 (局部_文本变量) - 局部_整数变量2)) .如果真结束 .判断循环尾 () 关闭文件 (局部_整数变量1) .如果真结束 程序集_线程号 = 0 .子程序 子程序_取域名, 文本型 .参数 参数_网址, 文本型 .局部变量 局部_符号位置, 整数型 .局部变量 局部_域名, 文本型 .如果 (文本比较 (取文本左边 (参数_网址, 7), “http://”, 假) ≠ 0) 局部_符号位置 = 寻找文本 (参数_网址, “/”, , 真) .如果 (局部_符号位置 > 0) 局部_域名 = 取文本左边 (参数_网址, 局部_符号位置 - 1) .否则 局部_域名 = 参数_网址 .如果结束 .否则 局部_符号位置 = 寻找文本 (参数_网址, “/”, 8, 真) .如果 (局部_符号位置 > 0) 局部_域名 = 取文本中间 (参数_网址, 8, 局部_符号位置 - 8) .否则 局部_域名 = 文本替换 (参数_网址, 1, 7, ) .如果结束 .如果结束 局部_符号位置 = 寻找文本 (局部_域名, “:”, 1, 真) .如果真 (局部_符号位置 > 0) 局部_域名 = 取文本左边 (局部_域名, 局部_符号位置 - 1) .如果真结束 返回 (到小写 (局部_域名)) .子程序 子程序_取页面地址, 文本型 .参数 参数_网址, 文本型 .局部变量 局部_页面地址, 文本型 .局部变量 局部_符号位置, 整数型 .局部变量 局部_域名, 文本型 局部_域名 = 子程序_取域名 (参数_网址) 局部_符号位置 = 寻找文本 (参数_网址, “/”, 寻找文本 (参数_网址, 局部_域名, 1, 真), 真) .如果 (局部_符号位置 > 0) 局部_页面地址 = 取文本右边 (参数_网址, 取文本长度 (参数_网址) - 局部_符号位置 + 1) .否则 局部_页面地址 = “/” .如果结束 返回 (局部_页面地址) .子程序 子程序_取端口, 整数型 .参数 参数_网址, 文本型 .局部变量 局部_符号位置, 整数型 .局部变量 局部_域名, 文本型 .如果 (文本比较 (取文本左边 (参数_网址, 7), “http://”, 假) ≠ 0) 局部_符号位置 = 寻找文本 (参数_网址, “/”, , 真) .如果 (局部_符号位置 > 0) 局部_域名 = 取文本左边 (参数_网址, 局部_符号位置 - 1) .否则 局部_域名 = 参数_网址 .如果结束 .否则 局部_符号位置 = 寻找文本 (参数_网址, “/”, 8, 真) .如果 (局部_符号位置 > 0) 局部_域名 = 取文本中间 (参数_网址, 8, 局部_符号位置 - 8) .否则 局部_域名 = 文本替换 (参数_网址, 1, 7, ) .如果结束 .如果结束 局部_符号位置 = 寻找文本 (局部_域名, “:”, 1, 真) .如果 (局部_符号位置 > 0) 局部_域名 = 取文本右边 (局部_域名, 取文本长度 (局部_域名) - 局部_符号位置) .否则 局部_域名 = “80” .如果结束 返回 (到数值 (局部_域名)) .版本 2 .DLL命令 创建线程, 整数型, , "CreateThread", , 彗星读文件 .参数 lpThreadAttributes, 整数型 .参数 dwStackSize, 整数型 .参数 lpStartAddress, 子程序指针 .参数 lpParameter, 整数型 .参数 dwCreationFlags, 整数型 .参数 lpThreadId, 整数型, 传址 .DLL命令 销毁线程, , , "TerminateThread", , 彗星读文件 .参数 hThread, 整数型 .参数 dwExitCode, 整数型 .DLL命令 Internet激活, 整数型, "wininet.dll", "InternetOpenA", , 彗星读文件 .参数 句柄名称, 文本型, 传址 .参数 连接类型, 整数型, , 1直接连接;3代理连接 .参数 代理地址, 文本型, 传址 .参数 代理掩码, 文本型, 传址 .参数 dwFlags, 整数型, , 0 .DLL命令 Internet建立连接, 整数型, "wininet.dll", "InternetConnectA", , 彗星读文件 .参数 Internet句柄, 整数型 .参数 域名, 文本型, 传址 .参数 服务器端口, 整数型, , 80HTTP;21FTP; .参数 用户名, 文本型, 传址, 空 .参数 用户口令, 文本型, 传址, 空 .参数 服务类型, 整数型, , 1FTP;3HTTP .参数 dwFlags, 整数型, , 0http;134217728被动FTP模式 .参数 dwContext, 整数型, , 0 .DLL命令 Http创建请求, 整数型, "wininet.dll", "HttpOpenRequestA", , 彗星读文件 .参数 Internet连接句柄, 整数型, , 由Internet建立连接返回 .参数 访问方式, 文本型, 传址, "GET" or "POST"为空默认GET .参数 页面路径, 文本型, 传址, 简短路径,不带域名 .参数 协议版本, 文本型, 传址, 为空默认HTTP/1.1 .参数 引用页, 文本型, 传址, 可为空 .参数 识别类型, 文本型, 传址, 可为空 .参数 dwFlags, 整数型, , 2147483648更新下载 .参数 dwContext, 整数型, , 0 .DLL命令 Http发送请求, 逻辑型, "wininet.dll", "HttpSendRequestA", , 彗星读文件 .参数 HTTP请求句柄, 整数型 .参数 sHeaders, 文本型, 传址 .参数 lHeadersLength, 整数型 .参数 sOptional, 文本型, 传址 .参数 lOptionalLength, 整数型 .DLL命令 Internet读文件, 逻辑型, "wininet.dll", "InternetReadFile", , 彗星读文件 .参数 HTTP请求句柄, 整数型 .参数 sBuffer, 字节集, 传址 .参数 lNumBytesToRead, 整数型 .参数 lNumberOfBytesRead, 整数型, 传址 .DLL命令 HTTP查询信息, 逻辑型, "wininet.dll", "HttpQueryInfoA", , 彗星读文件 .参数 Internet请求句柄, 整数型 .参数 待查信息, 整数型, , 22返回所有信息;43SET_COOKIE;+2147483648返回文本 .参数 返回容器, 文本型, 传址 .参数 返回容器长度, 整数型, 传址 .参数 lpdwIndex, 整数型 .DLL命令 Internet关闭句柄, 逻辑型, "wininet.dll", "InternetCloseHandle", , 彗星读文件 .参数 句柄, 整数型 .DLL命令 设置COOKIE, 逻辑型, "wininet.dll", "InternetSetCookieA", , 彗星读文件 .参数 域名, 文本型, 传址 .参数 名称, 文本型, 传址 .参数 内容, 文本型, 传址

网友评论