Microsoft Internet Transfer 控件

Internet Transfer 控件支持超文本传输协议 (HTTP) 和文件传输协议 (FTP)，它们是 Internet 网上使用最广泛的两种协议。

使用 HTTP 协议，可以连接全球信息网（World Wide Web）服务器，以检索 HTML 文档。使用 FTP 协议可以在 FTP 服务器上登录，以下载和加载文件。UserName 和 Password 属性可让您在要求验证身份的私有的服务器上进行登录。另外，也可以连接公用的 FTP 服务器，并下载文件。Execute 方法支持普通的 FTP 命令，如 CD 和 GET。


Topic Not Found

未找到该主题

未找到相匹配的主题。可能的原因和解决方法如下：

  • 包含目标主题的文件 (.chm) 没有位于指定的位置。

    解决方法：重新运行 MSDN Library的安装。

  • 包含当前主题或目标主题的文件 (.chm) 已经过时，并且链接不再有效。

    解决方法：安装最新版本的 MSDN Library。

  • MSDN Library CD 不在 CD-ROM 中。

    解决方法：将 MSDN Library CD 装入 CD-ROM 中。


StateChanged 事件

连接中状态发生改变，就会引发该事件。

语法

object_StateChanged(ByVal State As Integer)

StateChanged 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
State | 整数。如下面的“设置值”所示，指定状态。

设置值

State 的设置值：

常数 | 值 | 描述
icNone | 0 | 无状态可报告。
icHostResolvingHost | 1 | 该控件正在查询所指定的主机的 IP 地址。
icHostResolved | 2 | 该控件已成功地找到所指定的主机的 IP 地址。
icConnecting | 3 | 该控件正在与主机连接。
icConnected | 4 | 该控件已与主机连接成功。
icRequesting | 5 | 该控件正在向主机发送请求。
icRequestSent | 6 | 该控件发送请求已成功。
icReceivingResponse | 7 | 该控件正在接收主机的响应。
icResponseReceived | 8 | 该控件已成功地接收到主机的响应。
icDisconnecting | 9 | 该控件正在解除与主机的连接。
icDisconnected | 10 | 该控件已成功地与主机解除了连接。
icError | 11 | 与主机通讯时出现了错误。
icResponseCompleted | 12 | 该请求已经完成，并且所有数据均已接收到。

说明

一般来说，使用 StateChanged 事件决定何时使用 GetChunk 方法来检索数据。要这样做，须使用 Select Case 语句，并测试 icResponseReceived (8) 或 icResponseCompleted (12)。

注意，当该控件已完成一个操作时，且此操作在缓冲区中没有产生任何数据，此时 icResponseReceived 状态也可能出现。例如，当与某个 FTP 站点进行连接时，该控件将与此 FTP 站点“握手”，但没有在缓冲区中产生任何数据，此时会出现 icResponseReceived 状态。

另一方面，一个操作完全完成后，会出现 icResponseCompleted 状态。例如，如果正在使用 Execute 方法和 GET 操作来检索某个文件，在此文件被完全检索之后，将出现 icResponseCompleted 事件，且仅出现一次。

实际上，使用 icResponseReceived 状态可以对数据做语法分析，直到检索到所需信息为止（例如，检索 HTML 文件时，只对标头进行检索）。获得该信息后，就可以取消这次检索。另一方面，如果想检索整个文件，icResponseCompleted 状态还会通知传输已经完成，可以继续。


Internet Transfer 控件的可捕获的错误

下面这张表格列出了 Internet Transfer 控件的可捕获的错误及常数：

常数 | 值 | 描述
icOutOfMemory | 7 | “内存溢出”
icDisconnected | 10 | 该计算机已经从网络上断开。
icTypeMismatch | 13 | “类型不匹配”
icInvalidPropertyValue | 380 | 无效属性值
icInetOpenFailed | 35750 | 不能打开 internet 句柄
icOpenFailed | 35751 | “不能打开 URL”
icBadUrlL | 35752 | “URL 格式不正确”
icProtMismatch | 35753 | “该方法不支持的协议”
icConnectFailed | 35754 | “不能连接到远程主机”
icNoRemoteHost | 35755 | “没有指定远程计算机”
icRequestFailed | 35756 | “不能完成请求”
icNoExecute | 35757 | “检索数据前必须执行一个操作”
icBlewChunk | 35758 | “不能检索数据”
icFtpCommandFailed | 35759 | “FTP 命令失败”
icUnsupportedType | 35760 | “不能强制类型”
icTimeOut | 35761 | “请求超时”
icUnsupportedCommand | 35762 | “无效的或不支持的命令”
icInvalidOperation | 35763 | “无效的操作参数”
icExecuting | 35764 | “还在执行上一个请求”
icInvalidForFtp | 35765 | “该调用对一个 FTP 连接是无效的”
icOutOfHandles | 35767 | “句柄用尽”
icInetTimeout | 35768 | 超时
icExtendedError | 35769 | 外部错误
icIntervalError | 35770 | 内部错误
icInvalidURL | 35771 | 无效的 URL.
icUnrecognizedScheme | 35772 | 未知的时间表
icNameNotResolved | 35773 | 未保留的名称
icProtocolNotFound | 35774 | 协议未找到
icInvalidOption | 35775 | 无效的选项
icBadOptionLength | 35776 | 错误选项长度
icOptionNotSettable | 35777 | 不可设置选项
icShutDown | 35778 | 关闭
icIncorrectUserName | 35779 | 错误的用户名
icLoginFailure | 35781 | 登录失败
icInetIvalidOpertation | 35782 | 无效操作
icOperationCancelled | 35783 | 操作取消
icIncorrectHandleType | 35784 | 错误句柄类型
icIncorrectHandleState | 35785 | 错误句柄状态
icNotProxyRequest | 35786 | 不是代理
icRegistryValueNotFound | 35787 | 未找到注册值
icbadRegistryParameter | 35788 | 错误注册参数
icNoDirectAccess | 35789 | 无直接访问
icIncorrectPassword | 35780 | 错误密码
icNoContext | 35790 | 无上下文
icNoCallback | 35791 | 无回调
icRequestPending | 35792 | 请求挂起
icIncorrectFormat | 35793 | 错误格式
icItemNotFound | 35794 | 项目未找到
icCannotConnect | 35795 | 不能连接
icConnectionAborted | 35796 | 连接中止
icConnectionReset | 35797 | 连接复位
icForceEntry | 35798 | 强迫输入
icInvalidProxyRequest | 35799 | 无效代理请求
icWouldBlock | 35800 | 将阻塞
icHandleExists | 35802 | 句柄存在
icSecCertDateInvalid | 35803 | 安全身份验证日期无效
icSecCertCnInvalid | 35804 | 安全身份验证号无效
icHttpsToHttpOnRedir | 35806 | HTTPS 直接到 HTTP
icMixedSecurity | 35807 | 复合安全性
icChgPostIsNotSecure | 35808 | 改变邮局不安全
icHttpToHttpsOnRedir | 35805 | HTTPS 直接到 HTTP
icPostIsNonSecure | 35809 | 非安全邮局
icClientAuthCertNeeded | 35810 | 需要客户身份验证
icInvalidCa | 35811 | 无效的客户身份
icClientAuthNotSetup | 35812 | 未设置客户身份验证
icAsyncThreadFailed | 35813 | 异步线程失败
icRedirectSchemeChange | 35814 | 重定向时间表改变
icDialogPending | 35815 | 该操作被挂起，直到您关闭一个打开的对话框。
icRetryDialog | 35816 | 重新尝试该操作。
icHttpsHttpSubmitRedir | 35818 | 您必须重新尝试该操作，因为安全带区检查失败。
icInsertCdrom | 35819 | 可安装的 CD 缓存要求在驱动器中有一个 CD-ROM。
icFtpTransferInProgress | 35876 | FTP: 传输进行中
icFtpDropped | 35877 | 连接放下
icFtpNoPassiveMode | 35878 | 试图进行一个 PASSIVE 模式的连接（也就是说，原始的连接需要指定的 INTERNET_FLAG_PASSIVE），但是服务器不允许这种模式。
icGopherProtocolError | 35896 | Gopher: 协议错误
icGopherNotFile | 35897 | Gopher: 不是一个文件
icGopherDataError | 35898 | Gopher: 数据错误
icGopherEndOfData | 35899 | Gopher: 数据结束
icGopherInvalidLocator | 35900 | Gopher: 无效的定位器
icGopherIncorrectLocatorType | 35901 | Gopher: 错误的定位器类型
icGopherNotGopherPlus | 35902 | Gopher: 不是 Gopher plus
icGopherAttributeNotFound | 35903 | Gopher: 属性未找到
icGopherUnknownLocator | 35904 | Gopher: 未知的定位器
icHeaderNotFound | 35916 | HTTP: 头部未找到
icHttpDownlevelServer | 35917 | HTTP: 低级服务器
icHttpInvalidServerResponse | 35918 | HTTP: 无效的服务器响应
icHttpInvalidHeader | 35919 | HTTP: 无效头部
icHttpInvalidQueryRequest | 35920 | HTTP: 无效查询请求
icHttpHeaderAlreadyExists | 35921 | HTTP:头已存在
icHttpRedirectFailed | 35922 | HTTP:重定向失败
icSecurityChannelError | 35923 | 安全通道错误
icUnableToCacheFile | 35924 | 不能缓存文件
icHttpCookieNeedsConfirmation | 35927 | 在下载能够继续进行之前，您必须确认一个服务器提供的 cookie。
icHttpCookieDeclined | 35928 | 服务器提供的 cookie 不能被接受。
icServerUnreachable | 35930 | 不能连接到请求的服务器。这是由 WinSock 的 WSAEHOSTUNREACH 错误接收者来决定的。
icProxyServerUnreachable | 35931 | 无法到达请求的代理服务器。
icBadAutoProxyScript | 35932 | 在代理自动配置脚本中由一个错误，因此不能运行脚本。
icUnableToDownloadScript | 35933 | 不能检索请求的代理自动配置文件
icHttpRedirectNeedsConfirmation | 35934 | 在下载能够进行之前，您必须确认一个协议级的重新定向。
icSecInvalidCert | 35935 | 该证书无效。
icSecCertRevoked | 35936 | 该证书已经被调用。
icFailedDueToSecurityCheck | 35937 | 您试图进行的操作失败，因为它不能通过安全性检查。


Cancel 方法

取消当前请求，并关闭当前创建的所有连接。

语法

object.Cancel

object 所在处表示对象表达式，其值是“应用于”列表中的对象。

返回值

无返回值


Execute 方法示例

该示例列举了一系列使用 Execute 方法的 FTP 操作。该示例假定窗体中有三个 TextBox 控件。第一个控件 txtURL 包含 FTP 服务器的 URL。第二个控件 txtRemotePath 包含特殊命令所需的附加信息。第三个控件 txtResponse 包含服务器的响应。

Private Sub cmdChangeDirectory_Click()
   '将目录改变到 txtRemotePath。
   Inet1.Execute txtURL.Text, "CD " & _
   txtRemotePath.Text
End Sub

Private Sub cmdDELETE_Click()
   '删除 txtRemotePath 中的目录。
   Inet1.Execute txtURL.Text, "DELETE " & _
   txtRemotePath.Text
End Sub

Private Sub cmdDIR_Click()
   Inet1.Execute txtURL.Text, "DIR FindThis.txt"
End Sub

Private Sub cmdGET_Click()
   Inet1.Execute txtURL.Text, _
   "GET GetThis.txt C:\MyDocuments\GotThis.txt"
End Sub

Private Sub cmdSEND_Click()
   Inet1.Execute txtURL.Text, _
   "SEND C:\MyDocuments\Send.txt SentDocs\Sent.txt"
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
   'State = 12 时，用 GetChunk 方法检索服务器的响应。

   Dim vtData As Variant ' Data variable.
   Select Case State
   '...没有列举其它情况。
   Case icError '11
      '出现错误时，返回 ResponseCode 和 ResponseInfo。
      vtData = Inet1.ResponseCode & ":" & _
      Inet1.ResponseInfo
   Case icResponseCompleted ' 12

Dim vtData As Variant
      Dim strData As String
      Dim bDone As Boolean: bDone = False

      '取得第一个块。
      vtData = Inet1.GetChunk(1024, icString)
      DoEvents

      Do While Not bDone
         strData = strData & vtData
         '取得下一个块。
         vtData = Inet1.GetChunk(1024, icString)
         DoEvents

         If Len(vtData) = 0 Then
            bDone = True
         End If
      Loop
      txtData.Text = strData
   End Select

End Sub


GetChunk 方法（Internet Transfer 控件）

从 StateChanged 事件中检索数据。把 Execute 方法当作 GET 操作来调用之后使用该方法。

语法

object.GetChunk( size [,datatype] )

Get 属性的语法包含下面部分：

部分 | 描述
Object | 对象表达式，其值是“应用于”列表中的对象。
Size | 必需的。长整型数值表达式，决定被检索的块的大小。
datatype | 可选的。整数，决定被检索块的数据类型，如下面的“设置值”所示。

设置值

datatype 的设置值：

常数 | 值 | 描述
icString | 0 | 缺省值。把数据作为字符串来检索。
icByteArray | 1 | 把数据作为字节数组来检索。

返回类型

Variant

说明

在 StateChanged 事件中使用 GetChunk 方法。当 State 属性为 icResponseCompleted (12) 时，使用 GetChunk 方法检索缓冲区的内容。


GetChunk 方法、StateChanged 事件示例

该示例在 StateChanged 事件中用 GetChunk 方法来检索一块数据。该示例使用 Select Case 语句来决定如何处理每种可能的状态。该示例假定窗体中有一个名为 txtData 的 TextBox 控件。

Private Sub Inet1_StateChanged(ByVal State As Integer)
   'State = 12 时，使用 GetChunk 方法检索服务器的响应。
   '该示例假定数据为文本类型。

   Select Case State
   '...没有列举其它情况。

   Case icResponseReceived '12
      Dim vtData As Variant '数据变量。
      Dim strData As String: strData = ""
      Dim bDone As Boolean: bDone = False

      '取得第一块。
      vtData = Inet1.GetChunk(1024, icString)
      DoEvents
      Do While Not bDone
         strData = strData & vtData
         DoEvents
         '取得下一块。
         vtData = Inet1.GetChunk(1024, icString)
         If Len(vtData) = 0 Then
            bDone = True
         End If
      Loop

      txtData.Text = strData
   End Select

End Sub


GetHeader 方法

GetHeader 方法用于检索 HTTP 文件的标头文本。

语法

object.GetHeader (hdrName)

GetHeader 方法的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
hdrName | 可选的。字符串，指定将被检索的标头。

返回类型

String

说明

如果没有已命名的标头，将返回所有的标头。

下面这张表格列举了一些典型的可用标头。

标头 描述
Date
 返回文档传输的日期和时间。返回的数据格式为：Wednesday, 27-April-96 19:34:15 GMT。
MIME-version
 返回 MIME 协议的版本号，目前为 1.00。
Server
 返回服务器的名称。
Content-length
 返回数据的字节长度。
Content-type
 返回数据的 MIME 的 当前类型。
Last-modified
 返回最后一次修改文档的日期和时间。返回的数据格式为：Wednesday, 27-April-96 19:34:15 GMT。


Execute 方法

执行对远程服务器的请求。只能发送对特定的协议有效的请求。

语法

object.Execute url, operation, data, requestHeaders

Execute 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的一个对象。
url | 可选的。字符串，指定控件将要连接的 URL。如果这里未指定 URL，将使用 URL 属性中指定的 URL。
operation | 可选的。字符串，指定将要执行的操作类型。所支持的操作的列表，参见下面的“设置值”。
data | 可选的。字符串，指定用于操作的数据。（参见下面的“设置值”。）
requestHeaders | 可选的。字符串，指定由远程服务器传来的附加的标头。它们的格式为：header name: header value vbCrLf

设置值

注意 operation 的有效设置值由所用的协议决定。下面的这张表格是按协议来组织的。

支持的 HTTP 命令

operation 的有效设置值：

运算 | 描述
GET | 检索由 URL 属性指定的 URL 中的数据。
HEAD | 发送请求的标头。
POST | 传递数据给服务器。该数据在 data 参数中。这是 GET 的替代方法，附加的指令在 data 参数中指定。
PUT | Put 操作。被替代的页面名在 data 参数中。

支持的 FTP 命令

重点 FTP 协议使用单个字符串，该字符串包含操作名以及操作所需的其它参数。换句话说，即不使用 data 和 requestHeaders 参数；所有的操作及操作的参数是在 operation 参数中作为单个字符串来传递的。各参数间由空格分隔。在下面的描述中，不要把“file1”、“file2”与 data , requestHeaders 参数搞混。

FTP 操作的语法为：

operationName file1 file2.

例如，为获得一个文件，下面的代码调用 Execute 方法，该方法包含着操作名 ("GET") 以及此操作所需的两个文件名：

Inet1.Execute "FTP://ftp.microsoft.com", _
"GET Disclaimer.txt C:\Temp\Disclaimer.txt"

注意 不支持嵌入空格的文件名。

operation 有效的 FTP 设置值：

运算 | 描述
CD file1 | 改变目录。改变到 file1 中指定的目录。
CDUP | 改变到父目录。等效于“CD..”。
CLOSE | 关闭当前的 FTP 连接。
DELETE file1 | 删除 file1 中指定的文件。
DIR file1 | 目录。搜索 file1 中指定的目录。（允许用通配符，但要使用远程主机的语法。）如果没有指定 file1，将返回当前的整个工作目录。 使用 GetChunk 方法返回目录数据。
GET file1 file2 | 检索 file1 中指定的远程文件，并创建 file2 中指定的新本地文件。
LS file1 | 列表。搜索 file1 中指定的目录。（允许用通配符，但要使用远程主机的语法。）。使用 GetChunk 方法返回文件目录数据。
MKDIR file1 | 创建目录。创建 file1 中指定的目录。创建是否成功取决于用户在远程主机上的权限。
PUT file1 file2 | 复制 file1 指定的本地文件到 file2 指定的远程主机上。
PWD | 打印工作目录。返回当前目录名。使用 GetChunk 方法返回数据。
QUIT | 终止当前用户。
RECV file1 file2 | 检索 file1 中指定的远程文件，并创建 file2 中指定的本地新文件。等效于 GET。
RENAME file1 file2 | 将 file1 中命名的远程文件重命名为 file2 中指定的新名称。成功与否取决于用户在远程主机上的权限。
RMDIR file1 | 删除目录。删除 file1 中指定的远程目录。成功与否取决于用户在远程主机上的权限。
SEND file1 file2 | 复制 file1 指定的本地文件到 file2 指定的远程主机上。等效于 PUT。
SIZE file1 | 返回 file1 指定的目录的大小。

返回类型

None

说明

上面列出的许多命令都只有当用户在主机服务器上具有相应的权限时，才能够执行。例如，匿名的 FTP 站点不允许任何人删除文件或目录。


OpenURL 方法

打开并返回指定 URL 的文档。文档以变体型返回。该方法完成时，URL 的各种属性（以及该 URL 的一些部分，如协议）将被更新，以符合当前的 URL。

语法

object.OpenUrl url [,datatype]

OpenURL 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
url | 必需的。被检索文档的 URL。
datatype | 可选的。整数，如“设置值”所示，指定数据类型。

设置值

datatype 的设置值：

常数 | 值 | 描述
icString | 0 | 缺省值。把数据作为字符串来检索。
icByteArray | 1 | 把数据作为字节数组来检索。

返回类型

Variant

说明

OpenURL 方法的返回值取决于 URL 的目标。例如，如果 URL 的目标是某个 FTP 服务器的目录，将返回该目录。另一方面，如果目标是一个文件，则检索该文件。

OpenURL 方法等效于：调用带 GET 操作的 Execute 方法，然后在 StateChanged 事件中调用 GetChunk 方法。但是，OpenURL 方法会导致从站点返回同步数据流。

如下所示，如果正在检索一个二进制文件，在把它写到磁盘上之前，请务必使用一个字节数组作为临时变量：

Dim b() As Byte
Dim strURL As String
'设置 strURL 为一个有效的地址。
strURL = "FTP://ftp.GreatSite.com/China.exe"
b() = Inet1.OpenURL(strURL, icByteArray)

Open "C:\Temp\China.exe" For Binary Access _
Write As #1
Put #1, , b()
Close #1

注意 当使用 OpenURL 方法时，在设置 Password 和 UserName 属性之前，设置 URL 属性。如果最后设置 URL 属性， UserName 和 Password 属性将被置为 ""。


OpenURL 方法示例

该示例使用 OpenURL 属性来检索 FTP 服务器的目录。要运行该示例，在窗体中放置一个 Internet Transfer 控件和一个 RichTextBox 控件。然后，把这段代码粘贴到声明部分。按 F5 键运行此例，并双击此窗体。

Private Sub Form_DblClick()
   Inet1.AccessType = icUseDefault
   RichTextBox1.Text = Inet1.OpenURL _
   (InputBox("URL", , "ftp://ftp.microsoft.com"))
End Sub

该示例假定数据是二进制文件。用字节数组，并使用 Open、Put 和 Close 方法，就可以检索该文件并把它写到磁盘上。要运行此例，在窗体中放置一个 Internet Transfer 控件，并把这段代码粘贴到声明部分。再按 F5 键，并双击此窗体。

Private Sub Form_DblClick()
   Inet1.AccessType = icUseDefault
   Dim b() As Byte
   Dim strURL As String

   '假定这仍然是一个有效的 URL。
   strURL = "ftp://ftp.microsoft.com/" & _
   "developr/drg/Win32/Autorun.zip"

   '把该文件作为字节数组来检索。
   b() = Inet1.OpenURL(strURL, icByteArray)

   Open "C:\Temp\Autorun.zip" For Binary Access _
   Write As #1
   Put #1, , b()
   Close #1
   MsgBox "Done"
End Sub


AccessType 属性

设置或返回一个值，决定该控件用来与 Internet 网进行通讯的访问类型（通过代理访问或直接访问）。正在处理异步请求时，该值可以改变，但直到创建了下一个连接时，改变才会生效。

语法

object.AccessType = type

AccessType 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的一个对象。
type | 整数（枚举型）。数值表达式，决定所使用的访问类型，参见“设置值”中的描述。

设置值

type 设置值如下：

常数 | 值 | 描述
icUseDefault | 0 | 缺省。使用缺省值。控件使用在注册表中找到的缺省设置值来访问 Internet 网。
icDirect | 1 | 直接连到 Internet 网。控件直接连到 Internet 网。
icNamedProxy | 2 | 命名代理。指示控件使用 Proxy 属性中指定的代理服务器。


hInternet 属性

从下一级的 Wininet.dll API 返回 Internet 句柄。可直接使用该句柄来调用该 API。从 Visual Basic 访问控件时，不能使用该属性。

语法

object.hInternet

object 所在处表示对象表达式，其值是“应用于”列表中的对象。

数据类型

Long


Document 属性

返回或设置与 Execute 方法一起使用的文件或文档。如果未指定该属性，将返回服务器中的缺省文档；如果不指定文档写操作会发生错误。

语法

object.Document = string

Document 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
string | 与 Execute 方法一起使用的文件或文档的名称。


Password 属性（Internet Transfer 控件）

设置或返回一个密码，该密码将和请求一道被发送，用以在远程计算机上登录。如果该属性为空，控件将发送一个缺省的密码。

语法

object.Password = string

Password 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
string | 当登录到远程计算机时，要发送的密码。

说明

如下面的表格中所示，控件发送的缺省密码将取决于确切的方案：

UserName 属性 | Password 属性 | 发送到 FTP 服务器的 UserName | 发送到 FTP 服务器的 Password
Null 或 "" | Null 或 "" | “anonymous” | 用户的电子邮件名
非空字符串 | Null 或 "" | UserName 属性 | ""
Null | 非空字符串 | 错误 | 错误
非空字符串 | 非空字符串 | UserName 属性 | Password 属性


URL 属性

设置或返回 Execute 或 OpenURL 方法使用的 URL。

语法

object.URL [= url]

URL 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
url | 字符串，指定 Execute 方法中使用的 URL。

数据类型

String

说明

调用 OpenURL 或 Execute 方法会改变该属性的值。

直到下一次调用 OpenURL 或 Execute 方法时，对该属性所做的改变才有效。

URL 属性至少必须包含一个协议和一个远程主机名。

URL 属性可以是目录或文件。例如，下面这两个 URLs 都是有效的：

'设置该 URL，仅返回文件目录：
Inet1.URL = "HTTP://www.microsoft.com"
'然而，该 URL 将返回文件的文本：
Inet1.URL = "HTTP://www.microsoft.com/disclaimer.txt"


Protocol 属性（Internet Transfer 控件）

设置或返回一个值，指定和 Execute 方法一起使用的协议。

语法

object.Protocol = integer

Protocol 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
integer | 整数。数值表达式，决定所用的协议，如“设置值”中所描述。

设置值

Protocol 的有效设置值：

常数 | 值 | 描述
icUnknown | 0 | 未知的。
icDefault | 1 | 缺省协议。
icFTP | 2 | FTP。文件传输协议。
icReserved | 3 | 为将来预留。
icHTTP | 4 | HTTP。超文本传输协议。
icHTTPS | 5 | 安全 HTTP。

说明

指定该属性后，URL 属性被更新以显示新值。另外，如果此 URL 的协议部分被更新，Protocol 属性也将被更新以体现新值。OpenURL 和 Execute 方法都可能会修改该属性值。

直到调用下一个 Execute 或 OpenURL 方法时，该属性值的改变才会有效。


Proxy 属性

设置或返回用以和 Internet 网进行通讯的代理服务器的名称。只有当 AccessType 属性设置为 icNamedProxy (3) 时，才使用该属性。

语法

object.Proxy = proxy

Proxy 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
proxy | 所用的代理服务器的名称。

数据类型

String

说明

直到调用下一个 Execute 或 OpenURL 方法时，该属性值的改变才会有效。

您可以为每一个协议设置单独代理。例如，如果您的网络有一个用于 ftp 协议的名为"CorpFTP"的代理，且使用了端口 123，则您可以将期设置为:

Inet1.Proxy = "ftp=CorpFTP:123"

您可以指定多个网关，用空格将其相互分开。例如，如果您的 HTTP 代理名称为 "CorpHTTP"，并且使用了端口 131，则为两个协议做如下设置:

Inet1.Proxy = "ftp=CorpFTP:123 HTTP=CorpHTTP:131"

如果您没有指定要设置哪一个协议，则为所有的协议使用相同的代理名称。例如，即使协议是 http，也使用以下的代理名称:

Inet1.Proxy = "CorpFTP:123"


RequestTimeout 属性

设置或返回在超时截止之前，按秒计算的等待时间长度。如果请求在指定的时间内还没有响应，并且该请求使用 OpenURL 方法（同步地），就会产生错误；如果请求使用 Execute 方法，将引发带错误码的 StateChanged 事件。把该属性设置为 0，则意味着不限定等待时间。

语法

object.RequestTimeout = time

RequestTimeout 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
time | 在错误出现之前，按秒计算的等待时间长度。

数据类型

Long


ResponseCode 属性

StateChanged 事件中出现 icError (11) 状态时，从连接返回错误码。要获得此错误的描述，检查 ResponseInfo 属性。

语法

object.ResponseCode= code

ResponseCode 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
code | 远程服务器返回的数字。

数据类型

Long

说明

如下所示，可使用 StateChanged 事件来接收关于错误的通知：

Private Sub Inet1_StateChanged(ByVal State As Integer)
   Dim strMess As String '消息变量。
   Select Case State
   '...Other cases not shown.
   Case icError  '11
      '得到错误文本。
      strMess = "ErrorCode: " & Inet1.ResponseCode & _
      " : " & Inet1.ResponseInfo
   End Select

   Debug.Print strMess
End Sub


ResponseInfo 属性

返回最后发生的错误的文本。想得到该错误码，检查 ResponseCode 属性。

语法

object.ResponseInfo

ResponseInfo 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
info | 连接返回的响应。

返回类型

String

说明

如下所示，使用 StateChanged 事件来接收错误的通知：

Private Sub Inet1_StateChanged(ByVal State As Integer)
   Dim strMess As String '消息变量。
   Select Case State
   '...没有列举其它情况。
   Case icError  ' 11
      '得到错误文本。
      strMess = "ErrorCode: " & Inet1.ResponseCode & _
      " : " & Inet1.ResponseInfo
   End Select

   Debug.Print strMess
End Sub


StillExecuting 属性

返回一个值，指明此 Internet Transfer 控件是否处于忙状态。如果该控件正在做诸如从 Internet 网上检索文件之类的操作，将返回 True。当该控件处于忙的时候，不响应其它的请求。

语法

object.StillExecuting = boolean

StillExecuting 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
boolean | 布尔表达式，指明该控件是否处于忙状态。

数据类型

Boolean

设置值

boolean 的设置值：

常数 | 值 | 描述
True | -1 | 该控件忙。
False | 0 | 该控件空闲。


UserName 属性

设置或返回与请求一起发送到远程计算机的名称。如果该属性为空，当提出请求时，该控件将把“anonymous”作为用户名来发送。

语法

object.UserName[= name]

UserName 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
name | 字符串，指定 Execute 方法使用的 UserName。

数据类型

String

说明

调用 OpenURL 或 Execute 方法会改变该属性的值。

直到下一次调用 OpenURL 或 Execute 方法时，对该属性所做的改变才有效。