VB Inet控件(又叫Internet Transfer 控件)的详细用法
Inet控件也叫Internet Transfer 控件,这个控件封装了http协议以及ftp协议,使用起来非常方便。所以大家经常使用。然而大家通常使用的只是其部分功能,接下来我们讲一下它的全部详细功能,看过之后你也许会有眼前一亮的感觉。会猛然觉得我们之前懂得的只是皮毛。
闲话少说,下面开讲:
Internet Transfer 控件实现了两种广泛使用的 Internet 协议:超文本传送协议(HyperText Transfer Protocol(也就是HTTP) 和文件传送协议(File Transfer Protocol (FTP)。使用 Internet Transfer 控件可以通过 OpenURL Execute 方法连接到任何使用这两个协议的站点并检索文件。
可以做到的大体方向
在应用程序中添加 FTP 浏览器。

创建自动从公共 FTP 站点下载文件的应用程序。

分析 World Wide Web 站点中的图形引用,并只下载图形。

提供以自定义格式显示从 Web 页获得的动态数据。
基本操作
Internet Transfer 控件的功能依赖于将要使用的协议。由于所支持的两种协议工作起来不尽相同,所能够进行的操作就依赖于正在使用的协议。例如,GetHeader 方法只能用于 HTTPHTML 文档)协议。
然而,有些过程对两个协议是通用的。最基本的,如果要使用任何一个协议,则必须:
AccessType 属性设置为合法的代理服务器。

用合法的 URL 调用 OpenURL 方法。

用合法的 URL 和协议支持的命令调用 Execute 方法。

GetChunk 方法从缓冲区获取数据。
设置 AccessType 属性:使用代理服务器
为了与web服务器又被称为 Internet 建立任何形式的连接,必须确定计算机如何连接到 Internet 上。如果在 intranet 上,可能需要提供代理服务器才能连接到 Internet 上。
简单地说,代理服务器是计算机和 Internet 之间的媒介。intranet 上所有需要连接到 Internet 上的计算机,都必须通过代理服务器。代理行使 intranet Internet 之间的防火墙功能,能够阻止非法的最终用户和外部请求,也就保护了 intranet 不受破坏。
要查计算机中的代理设置值,请按照以下步骤执行:
打开控制面板的Internet选项。
Internet选项对话框中,单击连接

代理服务器中,确认选中了通过代理服务器连接复选框。

如果选中了,则单击设置。在该对话框中可以到能够用于多种协议的代理服务器的名称。如果没有定义代理服务器,请与系统管理员联系,以获得可用的代理服务器。
如果希望使用对话框中未列出的代理服务器,可将 AccessType 属性设置为 icNamedProxy (2)。然后将 Proxy 属性设置为代理服务器的名称,如下面的代码所示:
Inet1.Proxy = "myProxyName"
Inet1.AccessType = icNamedProxy
另一方面,如果希望使用缺省代理服务器(由计算机的注册表决定),则可以忽略 Proxy 属性,而只需将 AccessType 设置为 icUseDefault (0)
AccessType 的设置值在下表中列出:
常数 描述
icUseDefault 0 (缺省)用作缺省。控件使用注册表中的缺省设置访问 Internet
icDirect 1 直接连接 Internet。该控件可直接连接到 Internet
icNamedProxy 2 命名的代理服务器。指示该控件使用 Proxy 属性确定的代理服务器。

调用 OpenURL 方法
设置完 AccessType 属性后,最基本的操作就是用合法的 URL 调用 OpenURL 方法。使用 OpenURL 方法时,操作所得到的结果将依赖于目标 URL。例如下面的 URL 将返回在 www.microsoft 中到的 HTML 文档:
'名为Text1”的 TextBox 控件保存了
'该方法的结果。Internet 传输
'控件的名称是Inet1”。
Text1.Text = Inet1.OpenURL("www.microsoft")
作为结果,TextBox 控件保存了 HTML 源码,它看上去应和下图显示的相似:
在这种情况下,缺省操作返回的是 URL 定位的 HTML 文档。然而,如果 URL 被改为指向文
本文件,则将获得实际的文件。例如,下面的代码:
Text1.Text = Inet1. _
OpenURL("ftp://ftp.")
将获得文件的实际文本,如下所示:
提示 在使用 OpenURL Execute 方法时,不需要设置 Protocol 属性。Internet Transfer 控件会自动按 URL 的协议部分确定的协议来设置。
最后,可以用包含附加数据的 URL 调用 OpenURL 方法。例如,很多 Web 站点提供了搜索数据库的能力。要搜索数据库,则需要在发送的 URL 中包含搜索条件。例如下面的代码用条件find=Maui”调用名为”的搜索引擎。
Dim strURL As String
strURL = "www.baidu/s?wd=ibiancheng"
Text1.Text = Inet1.OpenURL(strURL)
如果搜索引擎到了符合条件的内容,将合成一个 HTML 文档并携带适当的信息返回。
OpenURL 方法保存到文件
如果需要将通过 OpenURL 方法获取的数据保存到文件,可以使用 OpenPut Close 语句,如下面的代码所示。该示例先将获得的二进制文件传入 Byte 数组,然后将该数据保存到磁盘中:
Dim strURL As String
Dim bData() As Byte '数据变量
Dim intFile As Integer '可用文件变量
strURL = _
"ftp://ftp.microsoft/Softlib/Softlib.e xe"
intFile = FreeFile() ' intFile 设置为未使用的文件
' OpenURL 方法的结果首先传入 Byte 数组,
'然后将 Byte 数组保存到磁盘。
bData() = Inet1.OpenURL(strURL, icByteArray)
Open "C:\Temp\Softlib.e xe" For Binary Access Write _
As #intFile
Put #intFile, , bData()
Close #intFile
可用类似的过程将文本文件写入磁盘中,不同的只是不再需要 Byte 数组了,数据可以直接保存到文件中:
Dim strURL As String 'URL 字符串
Dim intFile As Integer '可用文件变量
IntFile = FreeFile()
strURL = "www.microsoft"
Open "c:\" For Output _
As #IntFile
Write #IntFile, Inet1.OpenURL(strURL)
Close #IntFile
同步和异步传输
OpenURL 方法以同步方式传输数据。在这里,同步指的是传输操作未完成之前,不能执行其它过程。这样数据传输就必须在执行其它代码之前完成。
Execute 方法以异步方式传输数据。在调用 Execute 方法时,传输操作与其它过程无关。这样,在调用 Execute 方法后,在后台接收数据的同时,即可同时执行其它代码。
Internet Transfer 控件的使用者来说这意味着什么?简单地说,用 OpenURL 方法能够直接得到可保存到磁盘的数据流(如上所述),或者直接在 TextBox 控件中阅览(如果数据是文本格式的)。从另一方面说,如果用 Execute 方法获取数据,则必须用 StateChanged 事件监视该控件的连接状态。当达到适当的状态时,调用 GetChunk 方法从控件的缓冲区获取数据。下面更详细地讨论这一操作。
FPT 协议中使用 Execute 方法
Execute 方法具有四个参数:urloperationdata requestHeadersFTP 操作只用到了 operation 参数和 url 参数,其中后者是可选的。例如,要从远程计算机中得到一个文件,可用下面的代码:
Inet1.Execute "FTP://ftp.microsoft", _
" C:\"
如果正在用 FTP 从匿名 FTP 服务器中获取文件,就应熟悉在服务器目录树中漫游的特定命令,以及将其中文件获取到本地的硬盘中的命令。例如,要用 FPT 协议改变目录,应使用带有希望改变到的目录路径的CD”命令。
对绝大多数通用操作,如将文件传入服务器,以及从服务器获取文件,Internet 传输控件在 Execute 方法中使用了(与 FTP)相同或相近的命令。例如,下面的代码将CD”命令作为 Execute 方法的参数以改变路径:
'txtURL 文本框包含了要打开的路径。
'txtRemotePath 文本框包含了要改变到的路径。
Inet1.Execute txtURL.Text, "CD " & txtRemotePath.Text
注意 Execute 方法中使用 FTP 命令时,没有用到 data requestHeaders 参数。所有的操作和它们的参数都在 operation 参数中作为字符串进行传递;参数之间用空格进行分隔。在下面的描述中,不要把file1”和file2”项与 data requestHeaders 参数搞混。
FTP 操作的语法是:
operationName file1 file2
例如,要获取文件,在下面的代码中包含了操作的名称 (“获取),以及该操作所需的两个文件名:
'得到名为”的文件,并将其复制到
' C:\
Inet1.Execute, _
" C:\"
下表列出了该控件支持的 FTP 命令:
操作 描述 示例
CD file1 改变目录。改变到由 file1 指定的目录中。 Execute , "CD docs\mydocs"
CDUP 改变到父目录。功能与CD ..”相同。 Execute , "CDUP"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。