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.
  • Propiedades específicas de la descripción de las variables httpRequest
  • Observaciones
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
El tipo httpRequest se utiliza para recuperar las características avanzadas de una petición HTTP/HTTPS.. Las características de esta petición HTTP/HTTPS pueden ser definidas y modificadas por varias propiedades de WLanguage.
Observación: Consulte Declarar una variable para obtener más detalles sobre la declaración de este tipo de variables y el uso de propiedades WLanguage.
Versiones 22 y posteriores
Widget Android Este tipo de variable está ahora disponible en modo Widget Android.
Android Este tipo de variable ahora está disponible para aplicaciones Android.
WEBDEV - Código Navegador Este tipo de variable está ahora disponible en el código Navegador.
Nueva funcionalidad versión 22
Widget Android Este tipo de variable está ahora disponible en modo Widget Android.
Android Este tipo de variable ahora está disponible para aplicaciones Android.
WEBDEV - Código Navegador Este tipo de variable está ahora disponible en el código Navegador.
Widget Android Este tipo de variable está ahora disponible en modo Widget Android.
Android Este tipo de variable ahora está disponible para aplicaciones Android.
WEBDEV - Código Navegador Este tipo de variable está ahora disponible en el código Navegador.
Ejemplo
cMyRequest is httpRequestcMyRequest..URL = "https://www.windev.com"
cMyResponse is httpResponse = HTTPSend(cMyRequest)
IF ErrorOccurred THEN
Error(ErrorInfo(errFullDetails))
ELSE
Info(cMyResponse..Content)
END
Observaciones

Propiedades específicas de la descripción de las variables httpRequest

Las siguientes propiedades pueden utilizarse para realizar una petición HTTP/HTTTPS a manipular:
Nombre de la propiedadTipo utilizadoEfecto
UserAgentCadena de caracteresIdentifica al cliente. Por defecto, el valor corresponde al nombre de la aplicación.
El contenido de la respuesta puede depender del agente de usuario (por ejemplo, una petición realizada desde un Palm Pilot y una petición realizada desde un navegador de PC requieren páginas diferentes).. En este caso, véase la documentación del agente usuario para más detalles.
WEBDEV - Código Navegador No disponible.
Versiones 22 y posteriores
AuthToken
Nueva funcionalidad versión 22
AuthToken
AuthToken
Variable de tipo AuthTokenToken para acceder a un Webservice que se utilizará en caso de autenticación a través del protocolo OAuth 2.0. Este token de acceso fue recuperado por AuthIdentify.
El token de acceso se pasa automáticamente al parámetro access_token en la URL. Si el parámetro debe ser diferente, la URL http a ejecutar debe ser construida por usted mismo.
WEBDEV - Código Navegador No disponible.
UploadProgressVariable de tipo httpProgresoNotificación del estado de avance al cargar los datos POST.
DownloadProgressVariable de tipo httpProgresoNotificación del estado de progreso de la descarga.
Versiones 24 y posteriores
ClientCertificate
Nueva funcionalidad versión 24
ClientCertificate
ClientCertificate
String de caracteres o memoria intermediaCorresponde a:
  • una cadena de caracteres con un acceso ruta al archivo.p12 que contiene el certificado para adjuntar a la solicitud. El certificado se cargará automáticamente teniendo en cuenta:
    • el certificado en la biblioteca ejecutable (si se ha integrado en la aplicación),
    • el certificado en la ubicación especificada en el disco (si el certificado no se ha integrado en la biblioteca ejecutable).
  • una memoria intermedia con el certificado ("fLoadBuffer").
Si esta propiedad corresponde a una cadena vacía (""), el certificado por defecto se restablece a "<None>".
ContentTypeCadena de caracteresTipo de contenido del mensaje HTTP que se enviará al servidor. Esta propiedad solo se tiene en cuenta si el método de envío (propiedad ..Method) lo permite.
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", ...
Para enviar datos aproximados que serán leídos de inmediato por WEBDEV servidor de aplicaciones, utilice los siguientes tipos:
  • "application/octet-stream".
  • "text/xml".
ContenidoBufferMensaje HTTP que se enviará al servidor. Esta propiedad solo se tiene en cuenta si el método de envío (propiedad ..Method) lo permite.
El mensaje a enviar debe cumplir con el protocolo HTTP utilizado. Por defecto, si se especifica esta propiedad y si no está vacía, el método utilizado es una petición POST; de lo contrario, es una petición GET.
Versiones 25 y posteriores
MaxUploadRate
Nueva funcionalidad versión 25
MaxUploadRate
MaxUploadRate
IntegroVelocidad máxima de carga de datos, expresada en kilobytes por segundo. Esta velocidad se da sólo a título informativo.
0 (valor por defecto) significa que esta velocidad no está limitada.
WEBDEV - Código Navegador No disponible.
Versiones 25 y posteriores
MaxDownloadRate
Nueva funcionalidad versión 25
MaxDownloadRate
MaxDownloadRate
IntegroVelocidad máxima de descarga de datos, expresada en kilobytes por segundo. Esta velocidad se da sólo a título informativo.
0 (valor por defecto) significa que esta velocidad no está limitada.
WEBDEV - Código Navegador No disponible.
Versiones 24 y posteriores
Destino
Nueva funcionalidad versión 24
Destino
Destino
Cadena de caracteresruta completa del archivo de copia de seguridad del resultado de la solicitud HTTP.
WEBDEV - Código Navegador No disponible.
Tiempo de esperaEntero o DuraciónTiempo máximo de respuesta (expresado en milisegundos). Esta propiedad puede corresponder a:
  • un número entero que corresponde al número de milisegundos,
  • una variable de tipo Duration,
  • Versiones 23 y posteriores
    la indicación directa de la duración (por ejemplo, "1s" o "10ms").
    Nueva funcionalidad versión 23
    la indicación directa de la duración (por ejemplo, "1s" o "10ms").
    la indicación directa de la duración (por ejemplo, "1s" o "10ms").
Esta propiedad está establecida en 20 segundos por defecto.
Observación: El tiempo de espera definido por HTTPTimeOut no tiene influencia en esta propiedad.
WEBDEV - Código Navegador No disponible.
CabeceraArray asociativo de strings de caracteresConjunto de claves/valores de las cabeceras a enviar.
Ejemplo de utilización de esta propiedad:
cMyRequest..Header["Authorization"] = ...
" WSSE profile=""UsernameToken"""
cMyRequest..Header["X-WSSE"] = ...
"UsernameToken Username=blahblah "
cMyRequest..Header["Cache-Control"] = " no-cache"
IgnoreErrorConstante de tipo IntegerEspecifica los errores ignorados. Corresponde a una constante o a una combinación de constantes:
  • httpIgnoreInvalidCertificate: El certificado se ignora.
  • httpIgnoreInvalidCertificateName: Se ignora el nombre del sitio especificado en el certificado.
  • httpIgnoreExpiredCertificate: Se ignora la fecha del certificado.
  • Versiones 21 y posteriores
    httpIgnoreRedirection: Se ignora la redirección a una página.
    Nueva funcionalidad versión 21
    httpIgnoreRedirection: Se ignora la redirección a una página.
    httpIgnoreRedirection: Se ignora la redirección a una página.
  • httpIgnoreRedirectToHTTP: La redirección a un servidor no seguro está permitida.
  • httpIgnoreRedirectToHTTTPS: La redirección a un servidor seguro está permitida.
  • httpIgnoreRevocation: Se ignora la comprobación de la lista de certificados revocados.
Versiones 22 y posteriores
AndroidWidget Android Sólo se admiten los siguientes errores: httpIgnoreExpiredCertificate, httpIgnoreInvalidCertificate, httpIgnoreInvalidCertificateName, httpIgnoreRevocation, httpIgnoreRedirection.
Nueva funcionalidad versión 22
AndroidWidget Android Sólo se admiten los siguientes errores: httpIgnoreExpiredCertificate, httpIgnoreInvalidCertificate, httpIgnoreInvalidCertificateName, httpIgnoreRevocation, httpIgnoreRedirection.
AndroidWidget Android Sólo se admiten los siguientes errores: httpIgnoreExpiredCertificate, httpIgnoreInvalidCertificate, httpIgnoreInvalidCertificateName, httpIgnoreRevocation, httpIgnoreRedirection.
WEBDEV - Código Navegador No disponible.
MétodoConstante de tipo IntegerEl método HTTP utilizado:
  • httpCopia: Método COPY.
  • httpBorrar: Método DELETE.
  • httpGet: Método GET.
  • httpHead: Método de la cabeza.
  • Versiones 25 y posteriores
    Cierre httpLock: Método de bloqueo (protocolo WebDAV).
    Nueva funcionalidad versión 25
    Cierre httpLock: Método de bloqueo (protocolo WebDAV).
    Cierre httpLock: Método de bloqueo (protocolo WebDAV).
  • Versiones 25 y posteriores
    httpMkCol: Método MkCol (protocolo WebDAV).
    Nueva funcionalidad versión 25
    httpMkCol: Método MkCol (protocolo WebDAV).
    httpMkCol: Método MkCol (protocolo WebDAV).
  • Versiones 25 y posteriores
    httpMove: Método Move (protocolo WebDAV).
    Nueva funcionalidad versión 25
    httpMove: Método Move (protocolo WebDAV).
    httpMove: Método Move (protocolo WebDAV).
  • httpPatch: Método PATCH.
  • httpPost: Método POST.
  • Versiones 25 y posteriores
    httpPropFind: Método PROPFIND (protocolo WebDAV).
    Nueva funcionalidad versión 25
    httpPropFind: Método PROPFIND (protocolo WebDAV).
    httpPropFind: Método PROPFIND (protocolo WebDAV).
  • Versiones 25 y posteriores
    httpPropPatch: Método PROPPATCH (protocolo WebDAV).
    Nueva funcionalidad versión 25
    httpPropPatch: Método PROPPATCH (protocolo WebDAV).
    httpPropPatch: Método PROPPATCH (protocolo WebDAV).
  • httpPut: Método PUT.
  • Versiones 25 y posteriores
    httpUnlock: Método de desbloqueo (protocolo WebDAV).
    Nueva funcionalidad versión 25
    httpUnlock: Método de desbloqueo (protocolo WebDAV).
    httpUnlock: Método de desbloqueo (protocolo WebDAV).
Por defecto, si la propiedad ..Content no está vacía, se utiliza el método httpPost. De lo contrario, se utiliza el método httpGet.
ContraseñaCadena de caracteresContraseñ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.
Observación: Al ingresar los parámetros Nombre usuario y Contraseña, el "Authorization:Basic" correspondiente se genera automáticamente en el encabezado de la consulta.
Versiones 24 y posteriores
ClientCertificatePassword
Nueva funcionalidad versión 24
ClientCertificatePassword
ClientCertificatePassword
Cadena de caracteresContraseña asociada al certificado de cliente (cadena vacía por defecto)
Versiones 24 y posteriores
ProcedureTrace
Nueva funcionalidad versión 24
ProcedureTrace
ProcedureTrace
ProcedimientoNombre del procedimiento WLanguage utilizado para conocer los encabezados y los datos que han sido enviados. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(<InfoType> is int,
<Data> is Buffer)
donde:
  • <InfoType> es una constante entera que corresponde al tipo de datos que se están rastreando.:
    • httpTraceHeaderSent: Cabecera.
    • httpTraceDataSent: Datos.
  • <Datos> es un buffer que contiene la información.
Ejemplo de procedimiento:
PROCEDURE ProcTrace(nInfoType is int, ...
bufByData is Buffer)
SWITCH nInfoType
CASE httpTraceHeaderSent
Trace("Header: ", ...
UTF8ToString(bufByData))
CASE httpTraceDataSent:
Trace("Data: ", ...
bufByData)
END
WEBDEV - Código Navegador No disponible.
Versiones 21 y posteriores
ConnectionTimeout
Nueva funcionalidad versión 21
ConnectionTimeout
ConnectionTimeout
Entero o DuraciónTiempo máximo de espera para la conexión expresado en milisegundos (20 segundos por defecto, lo que significa 20000 milisegundos). Esta propiedad puede corresponder a:
  • un número entero que corresponde al número de milisegundos,
  • una variable de tipo Duration,
  • Versiones 23 y posteriores
    la indicación directa de la duración (20 s o 20000 ms, por ejemplo).
    Nueva funcionalidad versión 23
    la indicación directa de la duración (20 s o 20000 ms, por ejemplo).
    la indicación directa de la duración (20 s o 20000 ms, por ejemplo).
Si la conexión no se ha establecido después de este tiempo de espera, la conexión ha fallado (HTTPSend devolverá un error, que se encuentra en la variable httpRespuesta)..
WEBDEV - Código Navegador No disponible.
URLCadena de caracteresDirección del servidor a contactar (dirección URL).
Esta URL puede contener:
  • el número de puerto para conectarse al servidor.
    El valor por defecto es 80 en HTTP (corresponde a un servidor de páginas Web) y 443 en HTTPS. 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 se realiza siempre mediante Internet Explorer (véase HTTPParameter para más detalles).
drogadictaCadena de caracteresNombre utilizado para acceder a una página con una URL protegida (cadena vacía por defecto). Este nombre se utiliza para identificar al usuario.
Observación: Al asignar un valor a las propiedades ..User y ..Password, el "Authorization:Basic" correspondiente se genera automáticamente en el encabezado de la consulta.
Versiones 22 y posteriores
VersionSSL
Nueva funcionalidad versión 22
VersionSSL
VersionSSL
Constante de tipo IntegerLa versión SSL utilizada:
  • Protocolo ProtocoloDefault: Protocolo por defecto (TLS 1.2).
  • ProtocolTLS1: Protocolo TLS1.
  • protocolo ProtocolTLS1_1: Protocolo TLS1.1.
  • protocolo ProtocolTLS1_2: TLS1.2 protocol.
WEBDEV - Código Navegador No disponible.

Observación: Estas propiedades se pueden utilizar a través de una de las siguientes sintaxis:
  • <Nombre de variable>..<Nombre de propiedad>
  • <Nombre de variable>.<Nombre de propiedad>

Observaciones

  • La gestión de los certificados de clientes no está disponible.
  • Versiones 21 y posteriores
    Las redirecciones están soportadas por defecto. Para no permitir las redirecciones, utilice la constante httpIgnoreRedirection en la propiedad ..IgnoreError.
    Nueva funcionalidad versión 21
    Las redirecciones están soportadas por defecto. Para no permitir las redirecciones, utilice la constante httpIgnoreRedirection en la propiedad ..IgnoreError.
    Las redirecciones están soportadas por defecto. Para no permitir las redirecciones, utilice la constante httpIgnoreRedirection en la propiedad ..IgnoreError.
Versión mínima requerida
  • Versión 20
Esta página también está disponible para…
Comentarios
Video HttpRequest
https://youtu.be/-BpL9wZDmeM

https://windevdesenvolvimento.blogspot.com/2019/02/dicas-2026-windev-mobile-webservice-022.html


SOLICITACAO_HTTP is httpRequest
RESPOSTA_HTTP is httpResponse
sUrl is string="http://nots-amarildo/empresa/{nEmpresaid}"
sUrl=Replace(sUrl,"{nEmpresaid}","13")
SOLICITACAO_HTTP..URL = sUrl
SOLICITACAO_HTTP..Method = httpDelete
SOLICITACAO_HTTP..ContentType = "multipart/form-data"
SOLICITACAO_HTTP..Content = ""
HTTPCreateForm("FormData")
RESPOSTA_HTTP = HTTPSendForm("FormData", SOLICITACAO_HTTP)
EDT_RETORNO=RESPOSTA_HTTP..Content
amarildo
25 02 2019
Example HTTPCreateForm + HTTPRequest + HTTPSendForm
Procedure WS_RotasGoogleMaps(enderecoOrigem is string, enderecoDestino is string) : string

IF enderecoOrigem = "" OR enderecoDestino = "" THEN
RESULT(Null)
END

//GloVoceEnderecoLongo is string
//GloVoceEndereco is string
//GloVoceNumero is string
//GloDestinoEnderecoLongo is string
//GloDestinoEndereco is string
//GloDestinoNumero is string
//GloValorBandeira01 is real
//GloValorBandeira02 is real
//GloTaxaRetorno is real
//GloTempoCarro is real
//GloDistanciaCarro is real
//GloNortelatitude is real
//GloNorteLongitute is real
//GloSullatitude is real
//GloSulLongitute is real
//GloTempoDestino is string
//GloPoligonalGoogle is string
//GloDistanciaDestino is string
//GloHtmlInstructions is string

//Limpa variaveis
GloVoceEnderecoLongo = "ERRO" //String
GloDestinoEnderecoLongo = "ERRO" //String
GloTempoDestino = "" //String
GloDistanciaDestino = "" //String
GloHtmlInstructions = "" //String
GloPoligonalGoogle = "" //String
GloDistanciaCarro = 0 //real
GloTempoCarro = 0 //real
GloNortelatitude = 0 //real
GloNorteLongitute = 0 //real
GloSullatitude = 0 //real
GloSulLongitute = 0 //real

HTTPCreateForm("GoogleMaps")
HTTPAddParameter("GoogleMaps","origin", enderecoOrigem)
HTTPAddParameter("GoogleMaps","destination", enderecoDestino)
HTTPAddParameter("GoogleMaps","language", "pt-BR")
HTTPAddParameter("GoogleMaps","region", "br")
HTTPAddParameter("GoogleMaps","units", "metric")
HTTPAddParameter("GoogleMaps","key","AIzaSyDbSVKYPwB1a-_vPbDzAr6LgAfIj4iW2hc")

cMyRequest is HTTPRequest
cMyRequest..URL = "https://maps.googleapis.com/maps/api/directions/xml"
cMyRequest..Method = httpGet // OR httpPOST

cMyResponse is httpResponse = HTTPSendForm("GoogleMaps", cMyRequest)

IF cMyResponse..StatusCode <> 200 THEN // Se não funcionou
RESULT(Null)
END

xmlGoogle is XMLDocument = XMLOpen(cMyResponse..Content, fromString)
IF NOT xmlGoogle.DirectionsResponse.status..Text ~= "OK" THEN
RESULT(Null)
END

//Lendo nos unicos
GloVoceEnderecoLongo = xmlGoogle.DirectionsResponse.route.leg.start_address
GloDestinoEnderecoLongo = xmlGoogle.DirectionsResponse.route.leg.end_address
GloTempoCarro = xmlGoogle.DirectionsResponse.route.leg.duration.value
GloTempoDestino = xmlGoogle.DirectionsResponse.route.leg.duration.text
GloDistanciaCarro = xmlGoogle.DirectionsResponse.route.leg.distance.value
GloDistanciaDestino = xmlGoogle.DirectionsResponse.route.leg.distance.text
GloPoligonalGoogle = xmlGoogle.DirectionsResponse.route.overview_polyline.points
GloNortelatitude = xmlGoogle.DirectionsResponse.route.bounds.northeast.lat
GloNorteLongitute = xmlGoogle.DirectionsResponse.route.bounds.northeast.lng
GloSullatitude = xmlGoogle.DirectionsResponse.route.bounds.southwest.lat
GloSulLongitute = xmlGoogle.DirectionsResponse.route.bounds.southwest.lng

//Loop nos nós do xml
Resultado is string
Contador is int = 1
FOR EACH legNode OF xmlGoogle.DirectionsResponse.route.leg
IF legNode..Name = "step" THEN
HTML is string = legNode.html_instructions
Distancia is int = legNode.distance.value
Resultado += Contador + ". " + HTML + " [" + Distancia + "]" + CR
Contador++
END
END

GloHtmlInstructions = Resultado

RESULT(Resultado)
adrianoboller
13 01 2016