易语言HTTP读网页演示源码
系统结构:HTTP读网页,InternetOpenA,InternetConnectA,HttpOpenRequestA,HttpAddRequestHeadersA,HttpSendRequestA,InternetReadFile,HttpQueryInfoA,InternetQueryOptionA,InternetSetOptionA,InternetCloseHandle,
======窗口程序集_启动窗口
| |
| |------ _按钮1_被单击
| |
| |------ HTTP读网页
| |
| |
======调用的Dll
| |
| |---[dll]------ InternetOpenA
| |
| |---[dll]------ InternetConnectA
| |
| |---[dll]------ HttpOpenRequestA
| |
| |---[dll]------ HttpAddRequestHeadersA
| |
| |---[dll]------ HttpSendRequestA
| |
| |---[dll]------ InternetReadFile
| |
| |---[dll]------ HttpQueryInfoA
| |
| |---[dll]------ InternetQueryOptionA
| |
| |---[dll]------ InternetSetOptionA
| |
| |---[dll]------ InternetCloseHandle
调用的DLL命令:
.DLL命令 InternetOpenA, 整数型, "Wininet.dll", "InternetOpenA", , 函数成功则返回Internet句柄,否则返回零。
.参数 sAgent, 文本型, , 指向一个以空结尾的字符串。该入口用作HTTP协议中用户代理项。
.参数 lAccessType, 整数型, , 访问类型
.参数 sProxyName, 文本型, , 代理服务器的名字,如果lAccessType类型未被设置为INTERNET_OPEN_TYPE_PROXY,该参数将被忽略且为NULL
.参数 sProxyBypass, 整数型, , 指定一个可选的主机名列表或IP地址。列表可包括未知元素,可以为NULL
.参数 lFlags, 整数型, , 0
.DLL命令 InternetConnectA, 整数型, "Wininet.dll", "InternetConnectA", , 成功则返回连接句柄,否则返回零。
.参数 hInternet, 整数型, , 先前调用InternetOpen返回的句柄
.参数 lpszServerName, 文本型, , 指向一个含有互联网主机名称站点的字符串(服务器的IP地址)
.参数 nServerPort, 整数型, , 指定端口号,默认为80
.参数 lpszUsername, 文本型, , 指出登陆用户名,若名登陆可设为0
.参数 lpszPassword, 文本型, , 指出登陆密码,若名登陆可设为0
.参数 dwService, 整数型, , 指出链接使用的协议
.参数 dwFlags, 整数型, , 常量:INTERNET_SERVICE_***
.参数 dwContext, 整数型
.DLL命令 HttpOpenRequestA, 整数型, "Wininet.dll", "HttpOpenRequestA", , 成功则返回请求句柄,否则返回零。
.参数 hConnect, 整数型, , InternetConnect 返回的句柄
.参数 lpszVerb, 文本型, , 命令字 "GET" or "POST",如果为 NULL,使用缺省值“GET”
.参数 lpszObjectName, 文本型, , lpszVerb指定处理的的页面地址
.参数 lpszVersion, 文本型, , HTTP版本,如果为空,将使用“HTTP/1.0”
.参数 lpszReferer, 文本型, , 一个网址,可以为空
.参数 lplpszAcceptTypes, 文本型, , 程序接收的文件类型列表。把空值传给该函数即通知了服务器只有文本文件可以被接收
.参数 dwFlags, 整数型, , 常量:INTERNET_FLAG_***
.参数 dwContext, 整数型
.DLL命令 HttpAddRequestHeadersA, 逻辑型, "wininet.dll", "HttpAddRequestHeadersA", , 成功则返回真,否则返回假。
.参数 hRequest, 整数型, , 由 HttpOpenRequest 返回的句柄
.参数 lpszHeaders, 文本型, 传址, HTTP请求协议头,每条协议必须以换行符结尾。
.参数 dwHeadersLength, 整数型, , 协议头数据长度
.参数 dwModifiers, 整数型, , 指定函数的实际作用,常量:HTTP_ADDREQ_FLAG_***。
.DLL命令 HttpSendRequestA, 逻辑型, "Wininet.dll", "HttpSendRequestA", , 成功则返回真,否则返回假。
.参数 hRequest, 整数型, , 由 HttpOpenRequest 返回的句柄
.参数 lpszHeaders, 文本型, , 服务请求的数据头,如果为NULL则没有数据头
.参数 dwHeadersLength, 整数型, , 服务请求的数据头的长度,以TCHAR为单位
.参数 lpOptional, 字节集, , 紧路在标题后任意数据的地址,此参数一般用于 POST 和 PUT 操作
.参数 dwOptionalLength, 整数型, , 数据的长度
.DLL命令 InternetReadFile, 逻辑型, "Wininet.dll", "InternetReadFile", , 成功则返回真,否则返回假。
.参数 hFile, 整数型, , InternetOpenUrl、FtpOpenFile、GopherOpenFile or HttpOpenRequest 返回的句柄
.参数 lpBuffer, 字节集, 传址, 指向一个用来接收数据的缓冲区
.参数 dwNumberOfBytesToRead, 整数型, , lpBuffer 缓冲区的大小
.参数 lpdwNumberOfBytesRead, 整数型, 传址, 指向一个变量用来接收实际读取到的字节数
.DLL命令 HttpQueryInfoA, 逻辑型, "Wininet.dll", "HttpQueryInfoA", , 成功则返回真,否则返回假。查询HTTP请求信息。
.参数 hRequest, 整数型, , 由 HttpOpenRequest or InternetOpenUrl 返回的句柄
.参数 dwInfoLevel, 整数型, , 属性和标识符的组合,用来修改请求。常量:HTTP_QUERY_***
.参数 lpvBuffer, 文本型, 传址, 指向一个缓冲的指针,该缓冲接收请求的信息。该参数绝对不能为NULL。
.参数 lpdwBufferLength, 整数型, 传址, 指向一个变量的指针,该变量指定缓冲大小。成功时,该变量包含了写入缓冲中的字节数。以ERROR_INSUFFICIENT_BUFFER失败时,指定所需缓冲区大小。
.参数 lpdwIndex, 整数型, 传址, 指向一个基于零的头索引,用来枚举相同名字情况下多个头信息。当调用该函数时,该参数指定的头的索引。返回时,该参数是下一个头的索引。如果没有下一个,则返回ERROR_HEADER_NOT_FOUND
.DLL命令 InternetQueryOptionA, 逻辑型, "Wininet.dll", "InternetQueryOptionA", , 成功则返回真,否则返回假。
.参数 hInternet, 整数型, , 要查询信息的Internet句柄
.参数 dwOption, 整数型, , 查询信息标志,常量:INTERNET_OPTION_***
.参数 lpBuffer, 整数型, 传址, 指向一个缓冲区,接收选项设置。必须事先分配好足够的空间。
.参数 lpdwBufferLength, 整数型, 传址, 指针变量,其中包含lpBuffer的大小,以字节为单位。如果返回ERROR_INSUFFICIENT_BUFFER,该参数指向所需要的字节数保存所请求的信息。
.DLL命令 InternetSetOptionA, 逻辑型, "Wininet.dll", "InternetSetOptionA", , 成功则返回真,否则返回假。
.参数 hInternet, 整数型, , 要设置信息的Internet句柄
.参数 dwOption, 整数型, , 设置信息标志,常量:INTERNET_OPTION_***
.参数 lpBuffer, 整数型, 传址, 指向一个缓冲区,包含被设置的选项值。
.参数 dwBufferLength, 整数型, , lpBuffer缓冲区的大小。
.DLL命令 InternetCloseHandle, 整数型, "Wininet.dll", "InternetCloseHandle", , 成功返加真,失败返回假.
.参数 hInet, 整数型, , Internet句柄
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。