Microsoft Internet Transfer (Control)

El control Internet Transfer ofrece una implementación de dos de los protocolos más ampliamente utilizados en Internet: Protocolo de transferencia de hipertexto (HTTP) y Protocolo de transferencia de archivos (FTP).

Mediante el protocolo HTTP, puede conectarse con servidores de World Wide Web para obtener documentos HTML. Con el protocolo FTP puede iniciar sesiones en servidores FTP para descargar y cargar archivos. Las propiedades UserName y Password permiten iniciar sesiones en servidores privados que requieran autentificación. Por otra parte, puede conectar con servidores FTP públicos y descargar archivos. Los comandos más comunes de FTP, como CD y GET, son compatibles por medio del método Execute.


No se encuentra el tema

No se halló el tema correspondiente. A continuación enumeramos algunas posibles razones y sus soluciones:

  • El archivo (.chm) que contiene el tema de destino no se encuentra en la ubicación esperada.

    Solución: vuelva a ejecutar la instalación de la Biblioteca MSDN.

  • El archivo (.chm) que contiene el tema actual o el de destino no está actualizado y el vínculo ya no es válido.

    Solución: instale la última versión de la Biblioteca MSDN.

  • El CD de la Biblioteca MSDN no está en la unidad de CD-ROM.

    Solución: inserte el CD en la unidad.


StateChanged (Evento)

Se produce siempre que hay un cambio de estado en la conexión.

Sintaxis

objeto_StateChanged(ByVal estado As Integer)

La sintaxis del evento StateChanged consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
estado | Integer. Especifica el estado, como se indica en Valores.

Valores

Los valores de estado son:

Constante | Valor | Descripción
icNone | 0 | No hay estado del que informar.
icHostResolvingHost | 1 | El control está buscando la dirección IP del host especificado.
icHostResolved | 2 | El control encontró la dirección IP del host especificado.
icConnecting | 3 | El control está conectando con el equipo host.
icConnected | 4 | El control conectó correctamente con el equipo host.
icRequesting | 5 | El control está enviando una solicitud al equipo host.
icRequestSent | 6 | El control envió correctamente la solicitud.
icReceivingResponse | 7 | El control está recibiendo una respuesta del equipo host.
icResponseReceived | 8 | El control recibió correctamente una respuesta del equipo host.
icDisconnecting | 9 | El control se está desconectando del equipo host.
icDisconnected | 10 | El control se desconectó correctamente del equipo host.
icError | 11 | Se produjo un error en la comunicación con el equipo host.
icResponseCompleted | 12 | La solicitud se completó y se recibieron todos los datos.

Comentarios

En general, usará el evento StateChanged para determinar el momento de recuperar los datos con el método GetChunk. Para esto, utilice una instrucción Select Case y compruebe si el estado es icResponseReceived (8) o icResponseCompleted (12).

Observe, sin embargo, que el estado icResponseReceived puede ocurrir cuando el control ha terminado una operación que no transmitió datos al búfer. Por ejemplo, cuando se conecta con un sitio FTP, el control realizará con el sitio un procedimiento de protocolo que no provoca ninguna transferencia de datos y, sin embargo, se produce el estado icResponseReceived.

Por otra parte, el estado icResponseCompleted se produce cuando una operación se ha completado por entero. Por ejemplo, si utiliza el método Execute con la operación GET para obtener un archivo, el evento icResponseCompleted sólo se producirá una vez, después de recuperar todo el archivo.

En la práctica, el uso del estado icResponseReceived permite analizar los datos hasta haber recuperado únicamente la información necesaria (por ejemplo, al obtener un archivo HTML, puede recuperar sólo los encabezados). Cuando ya tenga la información necesaria, puede cancelar el resto de la recuperación. Si, por el contrario, precisa recuperar todo el archivo, el estado icResponseCompleted le indicará que la transferencia ha terminado y que puede continuar.


Errores interceptables del control Internet Transfer

En las tablas siguientes se indican los errores interceptables correspondientes al control Internet Transfer y las constantes asociadas.

Constante | Valor | Descripción
IcOutOfMemory | 7 | "Memoria insuficiente"
IcDisconnected | 10 | El equipo ha sido desconectado de la red.
IcTypeMismatch | 13 | "El tipo no coincide"
IcInvalidPropertyValue | 380 | El valor de la propiedad no es válido
IcInetOpenFailed | 35750 | No se puede abrir el controlador de Internet
IcOpenFailed | 35751 | "No se puede abrir la dirección URL"
IcBadUrlL | 35752 | "La dirección URL está mal generada"
IcProtMismatch | 35753 | "Este método no es compatible con el protocolo"
IcConnectFailed | 35754 | "No se puede conectar con el host remoto"
IcNoRemoteHost | 35755 | "No se ha especificado ningún equipo remoto"
IcRequestFailed | 35756 | "No se puede completar la petición"
IcNoExecute | 35757 | "Debe ejecutar una operación antes de recuperar datos"
IcBlewChunk | 35758 | "No se puede recuperar datos"
IcFtpCommandFailed | 35759 | "Falló el comando FTP"
IcUnsupportedType | 35760 | "No se puede forzar el tipo"
IcTimeOut | 35761 | "Se excedió el tiempo de espera"
IcUnsupportedCommand | 35762 | "El comando no es válido o no es compatible"
IcInvalidOperation | 35763 | "Argumento de operación no válido"
IcExecuting | 35764 | "Todavía se está ejecutando la última petición"
IcInvalidForFtp | 35765 | "Esta llamada no es válida para una conexión FTP"
IcOutOfHandles | 35767 | "Sin controladores"
IcinetTimeout | 35768 | "Se ha excedido el tiempo de espera"
IcInetTimeout | 35768 | Se ha excedido el tiempo de espera
IcExtendedError | 35769 | Error extendido.
IcIntervalError | 35770 | Error interno.
IcInvalidURL | 35771 | Dirección URL no válida.
IcUnrecognizedScheme | 35772 | Patrón no reconocido
IcNameNotResolved | 35773 | Nombre sin resolver.
IcProtocolNotFound | 35774 | Protocolo no encontrado.
IcInvalidOption | 35775 | Opción no válida.
IcBadOptionLength | 35776 | Longitud de opción incorrecta.
IcOptionNotSettable | 35777 | La opción no se puede establecer
IcShutDown | 35778 | Apagar
IcIncorrectUserName | 35779 | Nombre de usuario incorrecto.
IcLoginFailure | 35781 | Error al iniciar la sesión.
IcInetIvalidOperation | 35782 | Operación no válida.
IcOperationCancelled | 35783 | Operación cancelada.
IcIncorrectHandleType | 35784 | Tipo incorrecto de controlador.
IcIncorrectHandleState | 35785 | Estado incorrecto del controlador.
IcNotProxyRequest | 35786 | No es un proxy.
IcRegistryValueNotFound | 35787 | Valor del Registro no válido.
IcbadRegistryParameter | 35788 | Parámetro del registro incorrecto.
IcNoDirectAccess | 35789 | Sin acceso directo.
IcIncorrectPassword | 35780 | Contraseña incorrecta.
IcNoContext | 35790 | Sin contexto.
IcNoCallback | 35791 | Sin devolución de llamada.
IcRequestPending | 35792 | Petición pendiente.
IcIncorrectFormat | 35793 | Formato incorrecto.
IcItemNotFound | 35794 | No se encuentra el elemento.
icCannotConnect | 35795 | No se puede conectar.
icConnectionAborted | 35796 | Conexión anulada.
icConnectionReset | 35797 | Conexión restablecida.
icForceEntry | 35798 | Forzar reintento.
icInvalidProxyRequest | 35799 | Petición del proxy no válida
icWouldBlock | 35800 | Con bloqueo.
icHandleExists | 35802 | El controlador ya existe.
icSecCertDateInvalid | 35803 | Fecha de certificación de seguridad no válida.
icSecCertCnInvalid | 35804 | Número de certificación de seguridad no válido.
icHttpsToHttpOnRedir | 35806 | HTTPS a HTTP al redirigir.
icMixedSecurity | 35807 | Seguridad mixta.
icChgPostIsNotSecure | 35808 | Cambiar la exposición no es seguro.
icHttpToHttpsOnRedir | 35808 | HTTPS a HTTP al redirigir.
icPostIsNonSecure | 35809 | La exposición no es segura.
icClientAuthCertNeeded | 35810 | Es necesaria la certificación de autorización del cliente.
icInvalidCa | 35811 | Autorización del cliente no válida.
icClientAuthNotSetup | 35812 | Autorización de cliente no establecida.
icAsyncThreadFailed | 35813 | Error en el subproceso Async.
icRedirectSchemeChange | 35814 | Cambio en el patrón de redirección.
icDialogPending | 35815 | La operación está suspendida hasta que cierre un cuadro de diálogo abierto.
icRetryDialog | 35816 | Intente la operación de nuevo.
icHttpsHttpSubmitRedir | 35818 | Debe volver a intentar la operación porque falló la comprobación de seguridad de zona
icInsertCdrom | 35819 | La caché de CD instalable requiere un CD-ROM presente en la unidad.
icFtpTransferInProgress | 35876 | FTP: transferencia en curso.
icFtpDropped | 35877 | FTP: conexión interrumpida.
icFtpNoPassiveMode | 35878 | Se intentó una conexión en modo pasivo (es decir, la solicitud de conexión original se especificó como INTERNET_FLAG_PASSIVE), pero el servidor no permite ese modo.
icGopherProtocolError | 35896 | Gopher: Error de protocolo.
icGopherNotFile | 35897 | Gopher: No es un archivo.
icGopherDataError | 35898 | Gopher: Error de datos.
icGopherEndOfData | 35899 | Gopher: Fin de los datos.
icGopherInvalidLocator | 35900 | Gopher: Localizador no válido.
icGopherIncorrectLocatorType | 35901 | Gopher: Tipo de localizador incorrecto.
icGopherNotGopherPlus | 35902 | Gopher: Sin Gopher Plus.
icGopherAttributeNotFound | 35903 | Gopher: No se encontró el atributo.
icGopherUnknownLocator | 35904 | Gopher: Localizador desconocido.
icHeaderNotFound | 35916 | HTTP: No se encontró el encabezado.
icHttpDownlevelServer | 35917 | HTTP: Servidor de bajo nivel.
icHttpInvalidServerResponse | 35918 | HTTP: Respuesta del servidor no válida.
icHttpInvalidHeader | 35919 | HTTP: Encabezado no válido.
icHttpInvalidQueryRequest | 35920 | HTTP: Petición de consulta no válida.
icHttpHeaderAlreadyExists | 35921 | HTTP: El encabezado ya existe.
icHttpRedirectFailed | 35922 | HTTP: Falló la redirección.
icSecurityChannelError | 35923 | Error de seguridad de canal.
icUnableToCacheFile | 35924 | No se puede almacenar en caché el archivo.
icHttpCookieNeedsConfirmation | 35927 | Debe confirmar un cookie suministrado por el servidor antes de que comience la transferencia.
icHttpCookieDeclined | 35928 | No fue aceptado un cookie suministrado por el servidor.
icServerUnreachable | 35930 | No fue posible la conexión con el servidor solicitado. Esto se produjo por el error WSAEHOSTUNREACH recibido desde WinSock.
icProxyServerUnreachable | 35931 | No se pudo alcanzar el servidor proxy solicitado.
icBadAutoProxyScript | 35932 | Existe un error en el archivo de comandos de configuración automática del proxy, de modo que el archivo de comandos no pudo ejecutarse.
icUnableToDownloadScript | 35933 | No se pudo recibir el archivo de configuración automática del proxy solicitado.
icHttpRedirectNeedsConfirmation | 35934 | Debe confirmar una redirección del nivel de protocolo antes de que pueda comenzar la transferencia.
icSecInvalidCert | 35935 | El certificado no es válido
icSecCertRevoked | 35936 | El certificado ha sido revocado.
icFailedDueToSecurityCheck | 35937 | Falló la operación que intentó porque no pudo pasar la comprobación de seguridad.


Cancel (Método)

Cancela la solicitud actual y cierra las conexiones establecidas actualmente.

Sintaxis

objeto.Cancel

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Valor devuelto

Ninguno


Ejemplo del método Execute

Este ejemplo ilustra una serie de operaciones FTP comunes con el método Execute. En el ejemplo se supone que existen tres controles TextBox en el formulario. El primero, txtURL, contiene la dirección URL del servidor FTP. El segundo, txtRemotePath, contiene la información requerida por un comando determinado. El tercero, txtResponse, contiene la respuesta del servidor.

Private Sub cmdChangeDirectory_Click()
   ' Cambia al directorio txtRemotePath.
   Inet1.Execute txtURL.Text, "CD " & _
   txtRemotePath.Text
End Sub

Private Sub cmdDELETE_Click()
   ' Elimina el directorio indicado en txtRemotePath.
   Inet1.Execute txtURL.Text, "DELETE " & _
   txtRemotePath.Text
End Sub

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

Private Sub cmdGET_Click()
   Inet1.Execute txtURL.Text, _
   "GET TomaEsto.txt C:\MisDocumentos\TengoEsto.txt"
End Sub

Private Sub cmdSEND_Click()
   Inet1.Execute txtURL.Text, _
   "SEND C:\MisDocumentos\Enviar.txt DocsEnviados\Enviado.txt"
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
   ' Obtiene la respuesta del servidor con el método
   ' GetChunk cuando State = 12.

   Dim vtData As Variant ' Variable de datos.
   Select Case State
   ' ... Otros casos no mostrados.
   Case icError ' 11
      ' En caso de error, devuelve ResponseCode
      ' y ResponseInfo.
      vtData = Inet1.ResponseCode & ":" & _
      Inet1.ResponseInfo
   Case icResponseCompleted ' 12
      Dim vtData As Variant
      Dim strData As String
      Dim bDone As Boolean: bDone = False

      ' Obtiene el primer bloque.
      vtData = Inet1.GetChunk(1024, icString)
      DoEvents

      Do While Not bDone
         strData = strData & vtData
         ' Obtiene el siguiente bloque.
         vtData = Inet1.GetChunk(1024, icString)
         DoEvents

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

End Sub


GetChunk (Método, control Internet Transfer)

Obtiene datos cuando se produce el evento StateChanged. Puede usar este método después de invocar al método Execute como una operación GET.

Sintaxis

objeto.GetChunk( tamaño [,tipoDatos] )

La sintaxis de la propiedad Get consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
tamaño | Requerido. Expresión numérica de tipo Long que determina el tamaño del bloque que se va a recuperar.
tipoDatos | Opcional. Entero que especifica el tipo de datos del bloque obtenido, como se indica en Valores.

Valores

Los valores de tipoDatos son:

Constante | Valor | Descripción
icString | 0 | Predeterminado. Recupera los datos como una cadena.
icByteArray | 1 | Recupera los datos como una matriz de bytes.

Tipo devuelto

Variant

Comentarios

Puede usar el método GetChunk en el evento StateChanged. Cuando la propiedad State tenga el valor icResponseCompleted (12), utilice el método GetChunk para recuperar el contenido del búfer.


Ejemplo del método GetChunk, evento StateChanged

En este ejemplo se utiliza el método GetChunk en el evento StateChanged para obtener un bloque de datos. Se emplea una instrucción Select Case para determinar lo que se debe hacer en todos los estados posibles. En el ejemplo se supone que en el formulario hay un control TextBox llamado txtData.

Private Sub Inet1_StateChanged(ByVal State As Integer)
   ' Recupera la respuesta del servidor con el método
   ' GetChunk cuando State = 12. En este ejemplo se
   ' supone que los datos son texto.

   Select Case State
   ' ... No se muestran los demás casos.

   Case icResponseReceived ' 12
      Dim vtData As Variant ' Variable de datos.
      Dim strData As String: strData = ""
      Dim bDone As Boolean: bDone = False

      ' Obtiene el primer bloque.
      vtData = Inet1.GetChunk(1024, icString)
      DoEvents
      Do While Not bDone
         strData = strData & vtData
         DoEvents
         ' Obtiene el bloque siguiente.
         vtData = Inet1.GetChunk(1024, icString)
         If Len(vtData) = 0 Then
            bDone = True
         End If
      Loop

      txtData.Text = strData
   End Select

End Sub


GetHeader (Método)

Utilice el método GetHeader para recuperar el texto de encabezado de un archivo HTTP.

Sintaxis

objeto.GetHeader (nombreEnc)

La sintaxis del método GetHeader consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
nombreEnc | Opcional. Cadena que especifica el encabezado que desea recuperar.

Tipo devuelto

String

Comentarios

Si no indica ningún encabezado, obtendrá todos ellos.

En la tabla siguiente se enumeran algunos de los encabezados disponibles más comunes.

Encabezado Descripción
Date
 Devuelve la hora y la fecha de la transmisión del documento. El formato de los datos obtenidos es Miércoles, 27-Abril-96 19:34:15 GMT.
MIME-version
 Devuelve la versión del protocolo MIME, que actualmente es 1.00.
Server
 Devuelve el nombre del servidor.
Content-length
 Devuelve la longitud en bytes de los datos.
Content-type
 Devuelve el tipo de contenido MIME de los datos.
Last-modified
 Devuelve la fecha y la hora de la última modificación del documento. El formato de los datos devueltos es Miércoles, 27-Abril-96 19:34:15 GMT.


Execute (Método)

Ejecuta una solicitud a un servidor remoto. Sólo puede enviar solicitudes válidas para el protocolo que esté utilizando.

Sintaxis

objeto.Execute url, operación, datos, encabezadosSolicitud

La sintaxis de la propiedad Execute consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
url | Opcional. Cadena que especifica la dirección URL con la que debe conectar el control. Si no indica ninguna, se usará la dirección contenida en la propiedad URL.
operación | Opcional. Cadena que especifica el tipo de operación que desea ejecutar. En Valores encontrará una lista con las operaciones admitidas.
datos | Opcional. Cadena que especifica los datos para las operaciones (vea Valores).
encabezadosSolicitud Opcional. Cadena que especifica los encabezados adicionales para enviarlos al servidor remoto. El formato de los mismos es el siguiente:
nombre encabezado: valor encabezado vbCrLf

Valores

Nota El protocolo que esté utilizando determina los valores válidos para operación. Cada una de las tablas siguientes está dedicada a un protocolo.

Comandos de HTTP admitidos

Los valores válidos para operación son:

Operación | Descripción
GET | Recupera datos de la dirección URL especificada en la propiedad URL.
HEAD | Envía los encabezados de la solicitud.
POST | Envía datos al servidor. Los datos están en el argumento datos. Éste es un método alternativo a GET para el que se especifican las instrucciones adicionales en el argumento datos.
PUT | Operación de colocación. El nombre de la página que se va a reemplazar está ubicado en el argumento datos.

Comandos de FTP admitidos

Importante El protocolo FTP utiliza una única cadena que incluye el nombre de la operación y cualesquiera otros parámetros necesarios para realizarla. En otras palabras, los argumentos datos y encabezadosSolicitud no se utilizan, ya que todas las operaciones y los parámetros se pasan como una cadena única en el argumento operación. Los parámetros se separan con espacios. En las descripciones siguientes, no debe confundir los términos "archivo1" y "archivo2" con los argumentos datos y encabezadosSolicitud.

La sintaxis para las operaciones FTP es la siguiente:

nombreOperación archivo1 archivo2.

Por ejemplo, para obtener un archivo, en el código siguiente se invoca el método Execute, que incluye el nombre de la operación ("GET") y los dos nombres de archivo requeridos:

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

Nota No se admiten nombres de archivos que incluyan espacios incrustados.

Los valores de operación válidos para FTP son los siguientes:

Operación | Descripción
CD archivo1 | Cambiar directorio. Cambia al directorio especificado en archivo1.
CDUP | Cambiar al directorio superior. Equivale a "CD.."
CLOSE | Cierra la conexión FTP actual.
DELETE archivo1 | Elimina el archivo especificado en archivo1.
DIR archivo1 | Directorio. Busca en el directorio especificado en archivo1. Se admiten comodines, pero el host remoto determina la sintaxis. Si no especifica archivo1, obtendrá una lista completa del directorio de trabajo actual. Puede usar el método GetChunk para obtener los datos del directorio.
GET archivo1 archivo2 | Recupera el archivo remoto especificado en archivo1 y crea el nuevo archivo local especificado en archivo2.
LS archivo1 | Lista. Busca en el directorio especificado en archivo1. Se admiten comodines, pero el host remoto determina la sintaxis. Puede usar el método GetChunk para obtener los datos de los archivos del directorio.
MKDIR archivo1 | Crear directorio. Crea el directorio especificado en archivo1. El éxito de la operación depende de los privilegios del usuario en el host remoto.
PUT archivo1 archivo2 | Copia el archivo local especificado en archivo1 en el archivo del host remoto especificado en archivo2.
PWD | Mostrar directorio de trabajo. Devuelve el nombre del directorio actual. Puede usar el método GetChunk para obtener los datos.
QUIT | Termina la sesión del usuario actual.
RECV archivo1 archivo2 | Recupera el archivo remoto especificado en archivo1 y crea un nuevo archivo local especificado en archivo2. Equivale a GET.
RENAME archivo1 archivo2 | Cambia el nombre del archivo indicado en archivo1 por el nombre especificado en archivo2. El éxito de la operación depende de los privilegios del usuario en el host remoto.
RMDIR archivo1 | Eliminar directorio. Elimina el directorio remoto especificado en archivo1. El éxito de la operación depende de los privilegios del usuario en el host remoto.
SEND archivo1 archivo2 | Copia el archivo local especificado en archivo1 en el archivo del host remoto especificado en archivo2. Equivale a PUT.
SIZE archivo1 | Devuelve el tamaño del directorio especificado en archivo1.

Tipo devuelto

Ninguno

Comentarios

Muchos de los comandos enumerados arriba sólo pueden ejecutarse si el usuario tiene privilegios en el host servidor. Por ejemplo, los sitios FTP anonymous no permiten eliminar archivos ni directorios.


OpenURL (Método)

Abre y devuelve el documento ubicado en la dirección URL especificada. El documento se devuelve con el tipo Variant. Cuando termina la ejecución del método, las propiedades URL (y las partes de la dirección URL como el protocolo) se actualizan para reflejar la URL actual.

Sintaxis

objeto.OpenUrl url [,tipoDatos]

La sintaxis del método OpenURL consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
url | Requerido. Dirección URL del documento que desea obtener.
tipoDatos | Opcional. Entero que especifica el tipo de los datos, como se indica en Valores.

Valores

Los valores de tipoDatos son:

Constante | Valor | Descripción
icString | 0 | Predeterminado. Obtiene los datos como una cadena.
icByteArray | 1 | Obtiene los datos como una matriz de bytes.

Tipo devuelto

Variant

Comentarios

El valor devuelto por el método OpenURL depende del destino de la dirección URL. Por ejemplo, si el destino de la URL es un directorio de un servidor FTP, obtendrá el directorio. Por el contrario, si el destino es un archivo, obtendrá un archivo.

El método OpenURL equivale a invocar al método Execute con una operación GET, seguido de un método GetChunk invocado en el evento StateChanged. Sin embargo, el método OpenURL tiene como resultado la llegada de un flujo síncrono de datos desde el sitio remoto.

Si desea recuperar un archivo binario, asegúrese de emplear una matriz de bytes como variable temporal antes de escribirlo en disco, de este modo:

Dim b() As Byte
Dim strURL As String
' Establece strURL a una dirección válida.
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

Nota Cuando utilice el método OpenURL, establezca la propiedad URL antes que las propiedades Password y UserName. Si establece la propiedad URL en último lugar, las propiedades UserName y Password estarán establecidas a "".


Ejemplo del método OpenURL

En este ejemplo se utiliza el método OpenURL para obtener el directorio de un servidor FTP. Para probarlo, coloque un control Internet Transfer y un control RichTextBox en un formulario. Pegue el código a la sección Declaraciones. Presione F5 para ejecutar el ejemplo y haga doble clic en el formulario.

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

En este ejemplo se supone que los datos están en un archivo binario. Si utiliza una matriz de bytes, se obtiene el archivo y se escribe en disco con las instrucciones Open, Put y Close. Para probar el ejemplo, coloque un control Internet Transfer en un formulario y pegue el código a la sección Declaraciones. Presione F5 y haga doble clic en el formulario.

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

   ' Si esta es todavía una dirección URL válida.
   strURL = "ftp://ftp.microsoft.com/" & _
   "developr/drg/Win32/Autorun.zip"

   ' Obtiene el archivo como una matriz de bytes.
   b() = Inet1.OpenURL(strURL, icByteArray)

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


AccessType (Propiedad)

Establece o devuelve un valor que determina el tipo de acceso (a través de un servidor proxy o directamente) que usará el control para comunicarse con Internet. Puede modificar este valor mientas se está procesando una solicitud asíncrona, pero el cambio no tendrá efecto hasta que se establezca la siguiente conexión.

Sintaxis

objeto.AccessType = tipo

La sintaxis de la propiedad AccessType consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
tipo | Integer (enumerado). Expresión numérica que determina el tipo de acceso empleado, como se describe en Valores.

Valores

Los valores válidos para tipo son:

Constante | Valor | Descripción
icUseDefault | 0 | Predeterminado. Usar las opciones predeterminadas. El control utiliza los valores predeterminados que encuentra en el registro para el acceso a Internet.
icDirect | 1 | Directo a Internet. El control tiene una conexión directa con Internet.
icNamedProxy | 2 | Proxy con nombre. Indica al control que utilice el servidor proxy especificado en la propiedad Proxy.


hInternet (Propiedad)

Devuelve el controlador de Internet de la API de Wininet.dll subyacente. Por tanto, puede usar este controlador en llamadas directas a la API. Esta propiedad no se utiliza cuando efectúa el acceso al control desde Visual Basic.

Sintaxis

objeto.hInternet

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Tipo de datos

Long


Document (Propiedad)

Devuelve o establece el archivo o documento que se usará con el método Execute. Si no especifica esta propiedad, se empleará el documento predeterminado del servidor. Si no especifica ningún documento, se producirá un error en las operaciones de escritura.

Sintaxis

objeto.Document = cadena

La sintaxis de la propiedad Document consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
cadena | Nombre del archivo o documento que desea usar con el método Execute.


Password (Propiedad, control Internet Transfer)

Devuelve o establece la contraseña que se enviará junto con la solicitud de inicio de sesión a los equipos remotos. Si deja esta propiedad en blanco, el control enviará la contraseña predeterminada.

Sintaxis

objeto.Password = cadena

La sintaxis de la propiedad Password consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
cadena | Contraseña que desea enviar al iniciar una sesión en un equipo remoto.

Comentarios

La contraseña predeterminada enviada por el control dependerá del escenario concreto, como se muestra en la tabla siguiente:

Propiedad UserName | Propiedad Password | Nombre de usuario enviado al servidor FTP | Contraseña enviada al servidor FTP
Null o "" | Null o "" | "anonymous" | Nombre de correo electrónico del usuario
Cadena no nula | Null o "" | Propiedad UserName | ""
Null | Cadena no nula | Error | Error
Cadena no nula | Cadena no nula | Propiedad UserName | Propiedad Password


URL (Propiedad)

Devuelve o establece la dirección URL empleada por los métodos Execute y OpenURL.

Sintaxis

objeto.URL [= url]

La sintaxis de la propiedad URL consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
url | Cadena que especifica la dirección URL que desea usar en el método Execute.

Tipo de datos

String

Comentarios

Al invocar los métodos OpenURL y Execute, cambia el valor de esta propiedad.

La modificación de esta propiedad no tiene ningún efecto hasta que se llama al siguiente método OpenURL o Execute.

La propiedad URL debe contener al menos un protocolo y un nombre de host remoto.

La propiedad URL puede especificar un directorio o un archivo. Por ejemplo, son válidas las dos direcciones URL siguientes:

' Con esta URL sólo obtendrá el directorio del archivo:
Inet1.URL = "HTTP://www.microsoft.com"
' Sin embargo, con esta obtendrá el texto del archivo:
Inet1.URL = "HTTP://www.microsoft.com/disclaimer.txt"


Protocol (Propiedad, control Internet Transfer)

Devuelve o establece un valor que especifica el protocolo que desea usar con el método Execute.

Sintaxis

objeto.Protocol = entero

La sintaxis de la propiedad Protocol consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
entero | Integer. Expresión numérica que determina el protocolo empleado, como se describe en Valores.

Valores

Los valores válidos para Protocol son:

Constante | Valor | Descripción
icUnknown | 0 | Desconocido.
icDefault | 1 | Protocolo predeterminado.
icFTP | 2 | FTP. Protocolo de transferencia de archivos.
icReserved | 3 | Reservado para uso futuro.
icHTTP | 4 | HTTP. Protocolo de transferencia de hipertexto.
icHTTPS | 5 | HTTP seguro.

Comentarios

Cuando especifica esta propiedad, la propiedad URL se actualiza para mostrar el nuevo valor. Además, si la parte de protocolo de la dirección URL se actualiza, también se modifica la propiedad Protocol para reflejar el cambio. Los métodos OpenURL y Execute también pueden modificar el valor de esta propiedad.

El cambio de valor de esta propiedad no tiene ningún efecto hasta que se invoque el siguiente método Execute u OpenURL.


Proxy (Propiedad)

Devuelve o establece el nombre del servidor proxy utilizado para comunicar con Internet. Esta propiedad sólo se utiliza cuando el valor de AccessType es icNamedProxy (3).

Sintaxis

objeto.Proxy = proxy

La sintaxis de la propiedad Proxy consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
proxy | Nombre del servidor proxy que desea usar.

Tipo de datos

String

Comentarios

El cambio de valor de esta propiedad no tiene ningún efecto hasta que se invoque el siguiente método Execute u OpenURL.

Puede establecer servidores proxy para cada protocolo. Por ejemplo, si su red tiene un servidor proxy dedicado al protocolo FTP llamado "CorpFTP" y utiliza el puerto 123, puede establecerlo como:

Inet1.Proxy = "ftp=CorpFTP:123"

Puede especificar múltiples gateways separándolos con un espacio. Por ejemplo, si su servidor proxy HTTP se llama "CorpHTTP" y utiliza el puerto 131, establezca ambos protocolos de esta forma:

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

Si no especifica qué protocolo está intentando usar, se usará el mismo servidor proxy para todos los protocolos. Por ejemplo, se usará el servidor proxy llamado abajo aunque el protocolo sea HTTP.

Inet1.Proxy = "CorpFTP:123"


RequestTimeout (Propiedad)

Devuelve o establece la duración, en segundos, de un intervalo de espera. Si no se responde a una solicitud dentro del intervalo especificado y si la solicitud se efectuó con el método OpenURL (solicitud síncrona), se produce un error. Si la solicitud se efectuó con el método Execute, se producirá el método StateChanged junto con un código de error. El valor 0 de esta propiedad significa espera indefinida.

Sintaxis

objeto.RequestTimeout = tiempo

La sintaxis de la propiedad RequestTimeout consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
tiempo | Duración, en segundos, de la espera antes de que se produzca un error.

Tipo de datos

Long


ResponseCode (Propiedad)

Devuelve el código de error de la conexión cuando aparece el estado icError (11) en el evento StateChanged. Si desea obtener una descripción del error, vea la propiedad ResponseInfo.

Sintaxis

objeto.ResponseCode= código

La sintaxis de la propiedad ResponseCode consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
código | Número devuelto por el servidor remoto.

Tipo de datos

Long

Comentarios

Puede usar el evento StateChanged para recibir la notificación de un error, de este modo:

Private Sub Inet1_StateChanged(ByVal State As Integer)
   Dim strMess As String ' Variable de mensaje.
   Select Case State
   ' ... No se muestran los demás casos.
   Case icError  ' 11
      ' Obtiene el texto del error.
      strMess = "ErrorCode: " & Inet1.ResponseCode & _
      " : " & Inet1.ResponseInfo
   End Select

   Debug.Print strMess
End Sub


ResponseInfo (Propiedad)

Devuelve el texto del último error que se ha producido. En la propiedad ResponseCode encontrará el código del error.

Sintaxis

objeto.ResponseInfo

La sintaxis de la propiedad ResponseInfo consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
información | Respuesta devuelta por la conexión.

Tipo devuelto

String

Comentarios

Puede usar el evento StateChanged para recibir la notificación de un error, de este modo:

Private Sub Inet1_StateChanged(ByVal State As Integer)
   Dim strMess As String ' Variable de mensaje.
   Select Case State
   ' ... No se muestran los demás casos.
   Case icError  ' 11
      ' Obtiene el texto del error.
      strMess = "ErrorCode: " & Inet1.ResponseCode & _
      " : " & Inet1.ResponseInfo
   End Select

   Debug.Print strMess
End Sub


StillExecuting (Propiedad)

Devuelve un valor que especifica si el control Internet Transfer está ocupado. El control devolverá True cuando esté realizando una operación como obtener un archivo de Internet y no responderá a ninguna otra solicitud mientras esté ocupado.

Sintaxis

objeto.StillExecuting = booleano

La sintaxis de la propiedad StillExecuting consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Expresión booleana que especifica si el control está ocupado o no.

Tipo de datos

Boolean

Valores

Los valores de booleano son:

Constante | Valor | Descripción
True | -1 | El control está ocupado.
False | 0 | El control no está ocupado.


UserName (Propiedad)

Devuelve o establece el nombre de usuario que se enviará con las solicitudes a los equipos remotos. Si deja en blanco esta propiedad, el control enviará "anonymous" como nombre de usuario al realizar solicitudes.

Sintaxis

objeto.UserName[= nombre]

La sintaxis de la propiedad UserName consta de las partes siguientes:

Parte | Descripción
objeto | Expresión de objeto que da como resultado un objeto de la lista Se aplica a.
nombre | Cadena que especifica el nombre de usuario que desea usar en el método Execute.

Tipo de datos

String

Comentarios

Al invocar los métodos OpenURL y Execute, cambia el valor de esta propiedad.

La modificación de esta propiedad no tiene ningún efecto hasta la siguiente llamada a los métodos OpenURL o Execute.