|
|
|
|
- Error de seguridad en una transacción segura
- Recuperación del resultado
- Acceder a una URL con contraseña protected
- Cabeceras de autenticación
- Permisos necesarios
- Limitaciones
- Funcionalidad de aplicación requerida
Advertencia
A partir de la versión 28, esta función se mantiene sólo por compatibilidad (especialmente para la programación PHP). Se recomienda utilizar una Variable de tipo httpRequest con la función HTTPSend.
Inicia una petición HTTP en un servidor. El resultado de la consulta (buffer) puede ser: Observaciones: - Se soportan dos tipos de solicitudes: POST y get. Las peticiones del GET son automatic. Si no se especifica el "Mensaje por enviar", se trata de una solicitud GET (ver sintaxis). Para gestionar los formularios, se recomienda utilizar funciones específicas para los mismos (HTTPCreateForm, HTTPSendForm, etc.).
// Retrieve the HTML code of "www.windev.com" Web page ResStart = HTTPRequest("http://www.windev.com")
// Retrieve an HTML page that uses a protected URL ResStart = HTTPRequest("http://www.windev.com", ... "", "", "", "", "Julia", "Password")
Sintaxis
<Result> = HTTPRequest(<URL to contact> [, <User agent> [, <Additional HTTP header> [, <Message to send> [, <Message type> [, <Username> [, <Password>]]]]]])
<Result>: booleano - True si se inició la solicitud,
- False si se produce un error. Para obtener más información sobre el error, utilice la función ErrorInfo con la constante errMessage.
El resultado de la solicitud puede ser guardado en un archivo de respaldo por HTTPDestino o puede ser recuperado por HTTPGetResult. Los errores relativos a la seguridad de las transacciones no son devueltos por ErrorInfo: la conexión es rechazada.
<URL to contact>: Cadena de caracteres Dirección del servidor de Contact (URL Address). Este parámetro puede contener:- el número de puerto para conectarse al servidor. El valor de Default es 80 (corresponde a un servidor de páginas web). Para especificar un número de puerto, utilice el siguiente formato: "<URL del servidor>:<N° del puerto>". Por ejemplo: http://www.windev.com:80.
- parámetros adicionales. Estos parámetros se pueden utilizar para realizar una búsqueda o para rellenar un formulario. Por ejemplo, para buscar "windev" en "http://www.google.com", la URL será: "http://www.google.com/search?q=windev".
Observaciones: - Para especificar tanto el número de puerto como los parámetros adicionales, utilice el siguiente formato: "<URL del servidor>:<N° del puerto>/<Parámetros adicionales>".
- Para realizar una transacción segura, la URL debe comenzar por "https://". En este caso, el modo de gestión de las solicitudes lo realiza siempre INTERNET Explorer (para más detalles, véase HTTPConfigurar).
<User agent>: Cadena de caracteres opcional Identifica al cliente. El nombre de la solicitud es devuelto por Default. El contenido de la respuesta puede depender del agente de usuario (por ejemplo, una solicitud realizada desde un dispositivo móvil y una solicitud realizada desde un navegador de PC requieren páginas diferentes).. En este caso, para más detalles, consulte la documentación del agente de usuario. <Additional HTTP header>: Cadena de caracteres opcional - Cabecera HTTP adicional que se añadirá al mensaje HTTP,
- Cadena vacía ("") si se debe agregar ninguna solicitud HTTP.
<Message to send>: Cadena de caracteres opcional Mensaje HTTP que se enviará al servidor. Este parámetro puede especificarse sólo para una solicitud de envío de mensajes (solicitud Post). El mensaje a enviar debe cumplir con el protocolo HTTP utilizado. Si se especifica este parámetro y si no está vacío, es una petición POST; de lo contrario, es una petición GET (todo lo demás es automatic). <Message type>: Cadena de caracteres opcional Tipo de contenido del mensaje HTTP que se enviará al servidor. Este parámetro puede especificarse sólo para una solicitud de envío de mensajes (solicitud Post). Este parámetro corresponde a "Content-Type". Por Default, el tipo de mensaje corresponde a: "application/x-www-form-urlencoded". Sin embargo, tiene la posibilidad de utilizar cualquier valor, por ejemplo: "text/xml", "application/javascript", "application/json", "application/xml", "image/jpeg", ...
Para enviar datos en bruto que serán leídos de una vez por el servidor de aplicaciones WEBDEV, utilice los siguientes tipos: - "application/octet-stream".
- "text/xml".
<Username>: Cadena de caracteres opcional Nombre utilizado para acceder a una página con una URL protected (cadena vacía por Default). Este nombre se utiliza para identificar al usuario.Observación: Cuando se especifican los parámetros y , se genera automáticamente la correspondiente cabecera de solicitud "Authorization:Basic"..
<Password>: Cadena de caracteres opcional Contraseña associated con el nombre de usuario (cadena vacía por Default). Permite acceder a una página con una URL protected. Atención: La contraseña no se encripta cuando se envía a través de INTERNET.Observación: Cuando se especifican los parámetros y , se genera automáticamente la correspondiente cabecera de solicitud "Authorization:Basic"..
Observaciones Error de seguridad en una transacción segura Durante una transacción segura, la solicitud puede fallar debido a errores de seguridad: - Certificate o Certificate inválidos que vienen de una compañía desconocida.
- el nombre del sitio especificado en la Certificate no corresponde a un servidor.
- fecha inválida o caducada de Certificate.
- redirección a un servidor no seguro.
- ...
Si se produce uno de estos errores, puede volver a ejecutar la orden ignorando los errores.. Para hacerlo, use HTTP.IgnoreError Variable. El HTTP.IgnoreError Variable también se puede usar para administrar casos especiales durante las transacciones seguras (ignorando la lista de certificados revocados, por ejemplo). | | | Error devuelto por ErrorInfo (con la constante errCode) | Valor de HTTP.IgnoreError (estos valores se pueden combinar) | description |
---|
httpErrorInvalidCertificate Certificate o Certificate inválidos que vienen de una compañía desconocida | httpIgnoreInvalidCertificate | El Certificate es ignorado. | httpErrorInvalidCertificateName El nombre del sitio especificado en la Certificate no corresponde a un servidor | httpIgnoreInvalidCertificateName | El nombre del sitio especificado en la Certificate es ignorado. | httpErrorExpiredCertificate Inválido o caducado Certificate fecha | httpIgnoreExpiredCertificate | La fecha de Certificate es ignorada | httpErrorRedirectToHTTP Redirección a un servidor no seguro | httpIgnoreRedirectToHTTP | La redirección a un servidor no seguro está permitida. | httpIgnoreRedirectToHTTPS Redirección a un servidor seguro | httpIgnoreRedirectToHTTPS | La redirección a un servidor seguro está permitida. | | httpIgnoreRedirection | La redirección a una Page se ignora. | | httpIgnoreRevocation | La Certificate que se encuentra en la lista de las Certificate revocadas no está marcada. |
Por ejemplo:
// Start a request on a secure server ResStart = HTTPRequest("https://www.MyServer.com") // If an error occurs IF ResStart = False THEN // According to the type of error SWITCH ErrorInfo(errCode) // Invalid certificate // or coming from an unknown company CASE httpErrorInvalidCertificate: // Ignore the certificate? IF YesNo("Security alert detected!", ... "Invalid certificate.", ... "Ignore this certificate?") = Yes THEN HTTP.IgnoreError = httpIgnoreInvalidCertificate // Start the request again // while ignoring this error HTTPRequest("https://www.MyServer.com") END // Invalid or expired certificate date CASE httpErrorExpiredCertificate: // Ignore the certificate date? IF YesNo("Security alert detected!", ... "Certificate date invalid or expired.", ... "Ignore this date?") = Yes THEN HTTP.IgnoreError = httpIgnoreExpiredCertificate // Start the request again // while ignoring this error HTTPRequest("https://www.MyServer.com") END END END
Observaciones: - Cuando las consultas HTTP se ejecutan en varios Thread , HTTP.IgnoreError Variable tiene un valor específico para cada Thread .
- Se ignoran los errores relativos a la seguridad de las transacciones.. El HTTP.IgnoreError Variable no está disponible.
-
Antes de la versión 200057, se ignoraban los errores de seguridad de las transacciones.. El HTTP.IgnoreError Variable no estaba disponible. A partir de la versión 200057, se soportan los siguientes errores: httpIgnoreExpiredCertificate, httpIgnoreInvalidCertificate, httpIgnoreInvalidCertificateName, httpIgnoreRevocation. Se ignoran los otros errores. Para la compatibilidad con versiones anteriores, todos los errores se ignoran en los proyectos existentes.. Estos errores sólo se soportan en los nuevos proyectos. También se admite el error httpIgnoreRedirection .
Recuperación del resultado HTTPGetResult se utiliza para recuperar el resultado de la última petición HTTP ejecutada. Cuando se especifica un archivo de destino mediante HTTPDestino: - cuando se usa HTTPGetResult con la constante httpResult , siempre devuelve una cadena vacía ("").
- la función HTTPGetResult con la constante httpHeader siempre devuelve el encabezado de la respuesta HTTP. Este encabezado no se guarda en el archivo de destino: sólo se guardan los datos.
Una vez finalizada la solicitud, el destino se cancela y HTTPRequest funciona como de costumbre.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|