AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Comunicación / Funciones HTTP
  • Error de seguridad en una transacción segura
  • Recuperación del resultado
  • Acceder a una URL con contraseña protected
  • Uso de un proxy
  • Cabeceras de autenticación
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
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:
WEBDEV - Código Servidor Consejo: Utilizar HTTPSend para ejecutar una petición HTTP. Esta función utiliza una httpRequest Variable para describir con precisión la petición HTTP.
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.).
  • PHP Se puede utilizar la función HTTPRequest únicamente si el uso de sockets está permitido en el servidor PHP. Para una URL en HTTPS, OpenSSL debe compilarse con el motor PHP utilizado para generar las páginas: http://www.php.net/
// 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.
<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.
  • ...
Estos errores son devueltos por ErrorInfo.
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
httpIgnoreInvalidCertificateEl Certificate es ignorado.
httpErrorInvalidCertificateName
El nombre del sitio especificado en la Certificate no corresponde a un servidor
httpIgnoreInvalidCertificateNameEl nombre del sitio especificado en la Certificate es ignorado.
httpErrorExpiredCertificate
Inválido o caducado Certificate fecha
httpIgnoreExpiredCertificateLa fecha de Certificate es ignorada
httpErrorRedirectToHTTP
Redirección a un servidor no seguro
httpIgnoreRedirectToHTTPLa redirección a un servidor no seguro está permitida.
httpIgnoreRedirectToHTTPS
Redirección a un servidor seguro
httpIgnoreRedirectToHTTPSLa redirección a un servidor seguro está permitida.
httpIgnoreRedirectionLa redirección a una Page se ignora.
httpIgnoreRevocationLa 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 .

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.
WEBDEV - Código ServidorPHPAjax

Acceder a una URL con contraseña protected

Para acceder a una URL con contraseña protected, puede:
  • utilizar los parámetros <Nombre de usuario> y <Contraseña> de la sintaxis de la función HTTPRequest.
  • especificar el nombre de usuario y la contraseña directamente en el parámetro <URL a contactar>. Por ejemplo:
    <Res> = HTTPRequest("http://<user>:<password>@<URL to contact>")
WEBDEV - Código ServidorPHPAjax

Uso de un proxy

Para acceder a la URL especificada en la función HTTPRequest mediante un proxy, utilice la función Proxy.
WEBDEV - Código ServidorPHPAjax

Cabeceras de autenticación

Las cabeceras de autenticación se generan automáticamente en los siguientes casos:
  • Si HTTPRequest usa la sintaxis con nombre de usuario y contraseña.
  • Si la URL del servidor es la contraseña protected.
  • Si se utiliza Proxy.
Componente: wd280com.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
exemplo httprequest
https://windevdesenvolvimento.blogspot.com/2021/05/dicas-3325-windev-webdev-mobile.html
https://youtu.be/MQ7SrcjV33E
EDT_retorno=""
S_url is string="https://economia.awesomeapi.com.br/json/last/USD-BRL"
IF HTTPRequest(S_url) THEN
EDT_retorno=UTF8ToAnsi(HTTPGetResult())
let json_dados=JSONToVariant(EDT_retorno)
FOR EACH json_linha OF json_dados..Member
FOR EACH json_linha_Detalhe OF json_linha
IF json_linha_Detalhe..Name="high" THEN
EDT_dolar=json_linha_Detalhe..Value
END
END
END
END
amarildo
11 05 2021

Última modificación: 05/04/2023

Señalar un error o enviar una sugerencia | Ayuda local