PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Error de seguridad en una transacción segura
  • Recuperación
  • Acceso a una URL protegida por contraseña
  • Uso de un proxy
  • Cabeceras de autenticación
  • Caché en Windows Mobile
  • Permisos necesarios
  • Límites
  • Característica de aplicación requerida
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Inicia una petición HTTP en un servidor. El resultado de la consulta puede ser:
Versiones 20 y posteriores
WINDEVWEBDEV - Código ServidoriPhone/iPad Consejo: Se usa HTTPSend para ejecutar una petición HTTP. Esta función utiliza una httpRequest variable para describir con precisión la petición HTTP.
Nueva funcionalidad versión 20
WINDEVWEBDEV - Código ServidoriPhone/iPad Consejo: Se usa HTTPSend para ejecutar una petición HTTP. Esta función utiliza una httpRequest variable para describir con precisión la petición HTTP.
WINDEVWEBDEV - Código ServidoriPhone/iPad Consejo: Se usa HTTPSend para ejecutar una petición HTTP. Esta función utiliza una httpRequest variable para describir con precisión la petición HTTP.
Notas:
  • Se soportan dos tipos de solicitudes: POST y GET. Las peticiones GET son automáticas. Si no se especifica el "Mensaje por enviar", se trata de una solicitud GET (ver sintaxis). Para gestionar formularios, se recomienda utilizar las funciones de gestión de formularios (HTTPCreateForm, HTTPSendForm, ....).
  • PHP HTTPRequest puede ser usado sólo si el uso de está permitido sockets 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/
Versiones 15 y posteriores
Android Esta función ahora está disponible para aplicaciones Android.
Nueva funcionalidad versión 15
Android Esta función ahora está disponible para aplicaciones Android.
Android Esta función ahora está disponible para aplicaciones Android.
Versiones 16 y posteriores
Universal Windows 10 App Esta función ahora está disponible para las aplicaciones Windows Phone. HTTPRequest debe ejecutarse en una rosca.
Nueva funcionalidad versión 16
Universal Windows 10 App Esta función ahora está disponible para las aplicaciones Windows Phone. HTTPRequest debe ejecutarse en una rosca.
Universal Windows 10 App Esta función ahora está disponible para las aplicaciones Windows Phone. HTTPRequest debe ejecutarse en una rosca.
Versiones 17 y posteriores
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Nueva funcionalidad versión 17
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Versiones 18 y posteriores
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Widget Android Esta función ahora está disponible en modo Android Widget.
Nueva funcionalidad versión 18
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Widget Android Esta función ahora está disponible en modo Android Widget.
Versiones 21 y posteriores
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Nueva funcionalidad versión 21
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Ejemplo
// Retrieve the HTML code of "www.windev.com" Web page
ResStart = HTTPRequest("http://www.windev.com")
// Retrieve an HTML page that is using a protected URL
ResStart = HTTPRequest("http://www.windev.com", ...
"", "", "", "", "Julia", "Password")
Sintaxis
<Result> = Solicitud HTTPRequest(<URL to contact> [, <User agent> [, <Additional HTTP header> [, <Message to send> [, <Message type> [, <User name> [, <Password>]]]]]])
<Result>: Boolean
  • True si se ha iniciado la solicitud,
  • False si se ha producido un error. Para conocer los detalles del error, utilice ErrorInfo la constante errMessage..
    El resultado de la solicitud puede guardarse en un archivo de copia de seguridad HTTPDestination o recuperarse mediante HTTPGetResult.
    Universal Windows 10 AppJava Los errores relativos a la seguridad de las transacciones no son devueltos por ErrorInfo: la conexión es rechazada.
<URL to contact>: Character string (with quotes)
Dirección del servidor a contactar (dirección URL). Este parámetro puede contener:
  • el número de puerto para conectarse al servidor. El valor por defecto 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".
Notas:
  • 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 incidencias se realiza siempre a través de Internet Explorer (ver HTTPParameter más detalles)..
    Linux Las transacciones seguras no son compatibles.
<User agent>: Optional character string (with quotes)
Identifica al cliente. Por defecto, se devuelve el valor "PC SOFT Framework".El nombre de la aplicación se devuelve de forma predeterminada.
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, consulte la documentación del agente de usuarios para obtener más detalles..
Windows Mobile Identifica al cliente. Por defecto, se devuelve el valor "Mozilla/4.0 (compatible; MSIE 4.01 - Windows CE)".
De hecho, el contenido de la respuesta puede depender del agente de usuario. Por ejemplo, si se utiliza el valor predeterminado, el tamaño de las páginas mostradas se adaptará a la pantalla del Pocket PC (sólo si esta función es compatible con el servidor del sitio visitado).
<Additional HTTP header>: Optional character string (with quotes)
  • Cabecera HTTP adicional que se añadirá al mensaje HTTP,
  • Cadena vacía ("") si se debe agregar ninguna solicitud HTTP.
<Message to send>: Optional character string (with quotes)
Mensaje HTTP que se enviará al servidor. Este parámetro sólo se puede especificar 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; en caso contrario, es una petición GET (todo lo demás es automático).
<Message type>: Optional character string (with quotes)
Tipo de contenido del mensaje HTTP que se enviará al servidor. Este parámetro sólo se puede especificar para una solicitud de envío de mensajes (solicitud POST).. Este parámetro corresponde a "Content-Type".
Por defecto, 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", ...
Versiones 16 y posteriores
Para enviar datos aproximados que serán leídos inmediatamente por el servidor de aplicación WEBDEV, utilice los siguientes tipos:
  • "aplicación/byte-stream".
  • "text/xml".
Nueva funcionalidad versión 16
Para enviar datos aproximados que serán leídos inmediatamente por el servidor de aplicación WEBDEV, utilice los siguientes tipos:
  • "aplicación/byte-stream".
  • "text/xml".
Para enviar datos aproximados que serán leídos inmediatamente por el servidor de aplicación WEBDEV, utilice los siguientes tipos:
  • "aplicación/byte-stream".
  • "text/xml".
<User name>: Optional character string (with quotes)
Nombre utilizado para acceder a una página con una URL protegida (cadena vacía por defecto). Este nombre se utiliza para identificar al usuario.
señalar: Al ingresar los parámetros Nombre usuario y Contraseña, el "Authorization:Basic" correspondiente se genera automáticamente en el encabezado de la consulta.
Windows Mobile Este parámetro sólo se tiene en cuenta si el servidor Web solicita una autenticación (autenticación básica en IIS, por ejemplo).
<Password>: Optional character string (with quotes)
Contraseña asociada al nombre de usuario (cadena vacía por defecto). Se utiliza para acceder a una página con una URL protegida. Atención: La contraseña no está encriptada cuando se envía por Internet.
señalar: Al ingresar los parámetros Nombre usuario y Contraseña, el "Authorization:Basic" correspondiente se genera automáticamente en el encabezado de la consulta.
Windows Mobile Este parámetro sólo se tiene en cuenta si el servidor Web solicita una autenticación (autenticación básica en IIS, por ejemplo).
Observaciones

Error de seguridad en una transacción segura

Durante una transacción segura, la solicitud puede fallar debido a errores de seguridad:
  • certificado no válido o certificado procedente de una empresa desconocida.
  • el nombre del sitio especificado en el certificado no corresponde a un servidor.
  • fecha del certificado inválido o caducado.
  • 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 ello, utilice la variable HTTP.IgnoreError..
La variable HTTP.IgnoreError también puede utilizarse para gestionar 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)
Descripción
httpErrorInvalidCertificate
Certificado no válido o certificado procedente de una empresa desconocida
httpIgnoreInvalidCertificateEl certificado se ignora.
httpErrorInvalidCertificateName
El nombre del sitio especificado en el certificado no corresponde a un servidor
httpIgnoreInvalidCertificateNameSe ignora el nombre del sitio especificado en el certificado.
httpErrorExpiredCertificate
Fecha del certificado inválido o caducado
httpIgnoreExpiredCertificateSe ignora la fecha del certificado
httpErrorRedirectToHTTP
Redirección a un servidor no seguro
httpIgnoreRedirectToHTTPLa redirección a un servidor no seguro está permitida.
httpIgnoreRedirectToHTTTPS
Redirección a un servidor seguro
httpIgnoreRedirectToHTTTPSLa redirección a un servidor seguro está permitida.
httpIgnoreRedirectionSe ignora la redirección a una página.
httpIgnoreRevocationEl certificado que se encuentra en la lista de certificados revocados no se comprueba.
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
comentario:
  • Cuando las consultas HTTP se ejecutan en varios hilos, la variable HTTP.IgnoreError tiene un valor específico para cada hilo.
  • AndroidWidget Android Universal Windows 10 AppJava Se ignoran los errores relativos a la seguridad de las transacciones.. La variable HTTP.IgnoreError no está disponible.
  • Universal Windows 10 App Se ignoran los errores relativos a la seguridad de las transacciones.. La variable HTTP.IgnoreError no está disponible.
  • AndroidWidget Android Java
    Antes de la versión 200057, se ignoraban los errores de seguridad de las transacciones.. La variable HTTP.IgnoreError 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.
    Versiones 22 y posteriores
    AndroidWidget Android También se admite el error httpIgnoreRedirection.
    Nueva funcionalidad versión 22
    AndroidWidget Android También se admite el error httpIgnoreRedirection.
    AndroidWidget Android También se admite el error httpIgnoreRedirection.

Recuperación

HTTPGetResult se utiliza para recuperar el resultado de la última ejecución de la petición HTTP.
Cuando un archivo de destino es especificado por HTTPDestination:
  • la función HTTPGetResult con la constante httpResult siempre devuelve una cadena vacía ("").
  • HTTPGetResult asociado 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 Solicitud HTTPRequest funciona como de costumbre.
WINDEVWEBDEV - Código ServidorReportes y ConsultasWindows MobileUniversal Windows 10 AppPHPAjaxCódigo de Usuario (UMC)

Acceso a una URL protegida por contraseña

Para acceder a una URL protegida por contraseña, puede hacerlo:
  • utilizar los parámetros <Nombre de usuario> y <Contraseña> de la sintaxis de la función HTTPRequest.
  • especifique el nombre de usuario y la contraseña en el parámetro <URL to Contact>.. Por ejemplo:
    <Res> = HTTPRequest("http://<user>:<password>@<URL to contact>")
WINDEVWEBDEV - Código ServidorReportes y ConsultasWindows MobilePHPAjaxCódigo de Usuario (UMC)

Uso de un proxy

Para acceder a la URL especificada en la función HTTPRequest mediante un proxy, utilice la función Proxy.
WINDEVWEBDEV - Código ServidorReportes y ConsultasWindows MobileUniversal Windows 10 AppPHPAjaxCódigo de Usuario (UMC)

Cabeceras de autenticación

Las cabeceras de autenticación se generan automáticamente en los siguientes casos:
  • Si HTTPRequest está usando la sintaxis con login y contraseña.
  • Si la URL del servidor está protegida con contraseña.
  • Si Proxy se utiliza.
Windows Mobile

Caché en Windows Mobile

En Windows Mobile, el uso de una caché puede desencadenar la recuperación de un resultado inesperado incluso si se repite una solicitud.. Para evitar el uso de una caché, se puede añadir una cabecera HTTP adicional. Por ejemplo::
sAgent is string = "Mozilla/4.0 (compatible - MSIE 4.01 - Windows CE)"
Result1 = HTTPRequest("http://RequestUrl", sAgent, "Cache-Control: No-cache")
AndroidWidget Android

Permisos necesarios

La llamada a esta función modifica los permisos requeridos por la aplicación.
Permiso necesario: INTERNET.
Este permiso permite a las aplicaciones abrir la red sockets.
Universal Windows 10 App

Límites

  • El proxy utilizado es el de Internet Explorer.
  • Los certificados no pueden ignorarse.
Versiones 21 y posteriores
Universal Windows 10 App

Característica de aplicación requerida

El uso de esta función desencadena la declaración de una característica de aplicación en el asistente para generar la aplicación.
Característica necesaria: Internet y redes públicas (saliente).
Esta característica permite a las aplicaciones utilizar los accesos a Internet y a las redes públicas..
Nueva funcionalidad versión 21
Universal Windows 10 App

Característica de aplicación requerida

El uso de esta función desencadena la declaración de una característica de aplicación en el asistente para generar la aplicación.
Característica necesaria: Internet y redes públicas (saliente).
Esta característica permite a las aplicaciones utilizar los accesos a Internet y a las redes públicas..
Universal Windows 10 App

Característica de aplicación requerida

El uso de esta función desencadena la declaración de una característica de aplicación en el asistente para generar la aplicación.
Característica necesaria: Internet y redes públicas (saliente).
Esta característica permite a las aplicaciones utilizar los accesos a Internet y a las redes públicas..
Componente : wd250com.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Download de Imagem e exibição no mobile
iNomeImg is Image
bufMyBuffer2 is Buffer
sEndImagem is string
cMyResponse is httpResponse

SOLICITACAO_HTTP is httpRequest

SOLICITACAO_HTTP..URL = "http://crm.intellisys.com.br/IMG/Intellisys/Produtos/01.jpg"
SOLICITACAO_HTTP..Method = httpGet
SOLICITACAO_HTTP..ContentType = typeMimeJPEG

cMyResponse = HTTPSend(SOLICITACAO_HTTP)

Trace("Status Code: " + cMyResponse..StatusCode)

IF ErrorOccurred THEN
Error(ErrorInfo(errFullDetails))
ELSE
Trace("Conteudo: " + cMyResponse..Content)
bufMyBuffer2 = cMyResponse..Content
END

IMG_transicao = dLoadImage(bufMyBuffer2)
BOLLER
12 11 2019
Video HttpRequest
https://youtu.be/nc1Metp1ROQ
https://windevdesenvolvimento.blogspot.com/2019/08/dicas-2226-windev-webdev-mobile-24.html
// BTN_BUSCA_CNPJ_HTTPREQUEST
SURL is string="HTTPS://WWW.receitaws.com.br/v1/cnpj/"+EDT_CNPJ
PEDIDO_REQUEST is httpRequest
PEDIDO_REQUEST.URL=SURL
IF INT_GRAVAR_Hd=True // AQUI VEM A NOVIDADE 24 THEN
PEDIDO_REQUEST.Destination="E:\TEMP\HTTPREQUEST\CNPJ_"+EDT_CNPJ+".TXT"
END
RESPOSTA is httpResponse
RESPOSTA=HTTPSend(PEDIDO_REQUEST)
IF INT_GRAVAR_Hd=True THEN
ShellExecute("E:\TEMP\HTTPREQUEST\CNPJ_"+EDT_CNPJ+".TXT")
EDT_RETORNO="O RETORNO ESTA NO DIRETORIO"
ELSE
EDT_RETORNO=UTF8ToAnsi(RESPOSTA.Content)
END
amarildo
01 08 2019
Video HttpRequest
https://youtu.be/ciokqNgeaFc
https://windevdesenvolvimento.blogspot.com/2019/03/dicas-2033-windev-webservice-23.html
//
HTTPRequest("http://www.NOMESERVIDOR.com.br/estudos/teste.rar")
bufFer_retorno is Buffer= HTTPGetResult()
sBaixar_arquivo is string="c:\temp\teste.rar"
bRetorno is boolean=fSaveBuffer(sBaixar_arquivo,bufFer_retorno)
amarildo
04 03 2019