PC SOFT

ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Home | Sign in | English EN
  • En-tête de requête HTTP
  • Gestion des erreurs du serveur Web
  • Fonctionnement de HTTPRequête / HTTPDonneRésultat avec une destination
  • Récupération
  • Limites
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Récupère le résultat ou l'entête de la dernière requête HTTP lancée. Cette requête a été lancée par la fonction HTTPRequête ou par la fonction HTTPEnvoieFormulaire.
Versions 15 et supérieures
Android Cette fonction est désormais disponible pour les applications Android.
Nouveauté 15
Android Cette fonction est désormais disponible pour les applications Android.
Android Cette fonction est désormais disponible pour les applications Android.
Versions 16 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
Nouveauté 16
Universal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
Universal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
Versions 17 et supérieures
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Versions 18 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Nouveauté 18
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Versions 21 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
// Récupération des éléments de la page Web "www.pcsoft.fr"
ResLancement = HTTPRequête("http://www.pcsoft.fr")
SI ResLancement = Vrai ALORS
ResCode est une chaîne = HTTPDonneRésultat()
Info("Code HTML : " + ResCode)
ResEntête est une chaîne = HTTPDonneRésultat(httpEntête)
Info("Entête : " + ResEntête)
ResCookie est une chaîne = HTTPDonneRésultat(httpCookie)
Info("Cookie : " + ResCookie)
FIN
// Exemple de traitement d'erreur renvoyée par le serveur Web
Url est une chaîne
Res_HTTP est une chaîne
ErreurHTTP est une chaîne
Url = "http://www.amazon.fr/s/ref=nb_ss?__mk_fr_FR=AMAZON&url" + ...
"=search-alias=aps&field-keywords=2746049805"

// Envoi de la requête sur le serveur amazon
SI HTTPRequête(Url) ALORS
// La requête a pu être envoyée, il s'agit d'une URL valide
Res_HTTP = HTTPDonneRésultat()
SI Taille(Res_HTTP) = 0 ALORS
// Il y a eu une erreur du serveur Web,
// le détail de l'erreur est dans l'entête de la page
ErreurHTTP = HTTPDonneRésultat(httpEntête)
Erreur(ErreurHTTP)
FIN
FIN
Syntaxe
<Résultat> = HTTPDonneRésultat([<Type d'information>])
<Résultat> : Buffer ou chaîne de caractères
  • Résultat de la dernière requête HTTP si la constante httpRésultat est spécifiée.
  • En-tête de la dernière requête HTTP si la constante httpEntête est spécifiée.
Windows Mobile Ce paramètre doit être de type buffer.
<Type d'information> : Constante optionnelle
Type d'information à récupérer :
Versions 15 et supérieures
httpCookie
Nouveauté 15
httpCookie
httpCookie
Bloc des cookies (extrait à partir des entêtes HTTP).
Universal Windows 10 AppJava Cette constante n'est pas disponible.
httpEntêteEn-tête de la dernière requête HTTP.
httpRésultat
(Valeur par défaut)
Résultat de la dernière requête HTTP.
Attention : Dans ce cas, en Unicode, <Résultat> est un Buffer.
Remarques

En-tête de requête HTTP

Un entête de requête HTTP fournit diverses informations sur la requête HTTP (date, serveur utilisé, etc.).
Pour l'exécution de la requête HTTP suivante :
ResLancement = HTTPRequête("http://www.pcsoft.fr")
L'entête récupéré est :
HTTP/1.1 200 OK<\r><\n>
Date: Tue, 10 Jul 2001 13:19:08 GMT<\r><\n>
Server: Apache/1.3.11 (Unix) PHP/4.0.1<\r><\n>
Last-Modified: Thu, 04 Jan 2001 13:20:11 GMT<\r><\n>
ETag: "4107f-5f7b-3a54788b"<\r><\n>
Accept-Ranges: bytes<\r><\n>
Content-Length: 24443<\r><\n>
Connection: close<\r><\n>
Content-Type: image/gif<\r><\n><\r>

Gestion des erreurs du serveur Web

Certains serveurs Web retournent une erreur dans l’entête http. Par exemple, l'erreur peut correspondre à une notification de déplacement de page (rewriting d’url). Si le contenu de la page obtenue par HTTPDonneRésultat est vide, il faut consulter l’entête de la page.
Exemple d’entête d’erreur lors d'un déplacement de page (rewriting d’url):
HTTP/1.1 302 MovedTemporarily
Date: Wed, 30 Sep 2009 15:38:48 GMT
Server: Server
x-amz-id-1: 1KR8DDF5DV380D14DHTC
x-amz-id-2: pU0oo3rO/L+5kLNg4Yc4MPd0jF3qwyEI4nGaOhMgYkk=
Location: http://www.amazon.fr/WinDev-14-fondamentaux-d%C3%A9veloppement
-Pr%C3%A9sentation/dp/2746049805/ref=sr_11_1/277-8952281-8252733?ie=
UTF8&qid=1254325128&sr=11-1
Vary: Accept-Encoding,User-Agent
nnCoection: close
Content-Type: text/html; charset=ISO-8859-15
Set-cookie: session-id-time=1254866400l; path=/; domain=.amazon.fr;
expires=Tue Oct 06 22:00:00 2009 GMT
Set-cookie: session-id=277-8952281-8252733; path=/; domain=.amazon.fr;
expires=Tue Oct 06 22:00:00 2009 GMT
Content-Length: 0
WINDEVWEBDEV - Code ServeurEtats et RequêtesUniversal Windows 10 AppWindows MobileiPhone/iPadWidget iOSCatalystCode Utilisateur (MCU)Ajax

Fonctionnement de HTTPRequête / HTTPDonneRésultat avec une destination

Lorsqu'une destination fichier est précisée avec la fonction HTTPDestination :
  • la fonction HTTPDonneRésultat utilisée avec la constante httpRésultat renvoie toujours une chaîne vide ("").
  • la fonction HTTPDonneRésultat utilisée avec la constante httpEntête renvoie toujours l'entête de la réponse HTTP. Cet entête n'est pas enregistré dans le fichier destination : seules les données sont enregistrées.
Lorsque la requête est terminée, la destination est annulée et la fonction HTTPRequête fonctionne normalement.

Récupération

La fonction HTTPDonneRésultat permet également de récupérer une image ou un document binaire (voir Exemple).
Universal Windows 10 App

Limites

  • Le proxy utilisé est celui d'Internet Explorer.
  • Il n'est pas possible d'ignorer les certificats.
  • Le protocole renvoyé par la fonction HTTPDonneRésultat utilisé avec la constante httpEntête est toujours 1.1 (même si le serveur est 1.0).
Composante : wd260com.dll
Minimum version required
  • Version 9
Comments
Video HTTPGetResult
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 Mar. 2019
Exemplo httpgetresult
//busca cep
_manda_Cep is int=SAI_cep_busca
(SAI_uf,SAI_cidade,SAI_bairro,SAI_tipo,SAI_rua)=busca_cep(_manda_Cep)
//----
PROCEDURE busca_cep(n_cep_recebe is int)
Resultadoxml is string=""
ok is boolean=HTTPRequest("http://cep.republicavirtual.com.br/web_cep.php?cep="+n_cep_recebe+"&formato=xml")
IF ok=True THEN
Resultadoxml=HTTPGetResult()
ELSE
Resultadoxml=""
Info("cep nao existe"+n_cep_recebe)
END
sNo_xml is string=XMLExtractString(Resultadoxml,"webservicecep")
suf is string=XMLExtractString(sNo_xml,"uf")
suf=Upper(remove_acento(suf))
RESULT(suf,sCidade,sBairro,sTipo,sRua)

// Blog com video e exemplo completo

http://windevdesenvolvimento.blogspot.com.br/2016/01/windev21-curso-225-cep-republica.html
De matos AMARILDO
15 Jan. 2016
Examples
Ex01: Retorna Html
#####################################################
Code Button:

Url is string = "http://www.informaticon.com.br"
ok is boolean = httprequest(url)
if ok = true
info(ok )
retorno is string = httpgetresult()
else
info(errorinfo())
end

Ex02: Retorna Header do Html
#####################################################
Code Button:

Url is string = "http://www.informaticon.com.br"
ok is boolean = httprequest(url)
if ok = true
info(ok )
retorno is string = httpgetresult(httpHeader)
else
info(errorinfo())
end

Ex03: Retorna Cookie
#####################################################
Code Button:

Url is string = "http://www.informaticon.com.br"
ok is boolean = httprequest(url)
if ok = true
info(ok )
retorno is string = httpgetresult(httpCookie)
else
info(errorinfo())
end

Ex04: Retorna html
#####################################################
Code Button:

Url is string = "http://www.informaticon.com.br"
ok is boolean = httprequest(url)
if ok = true
info(ok )
retorno is string = httpgetresult(httpResult)
else
info(errorinfo())
end

Ex05: Retorna uma imagem (download de arquivo)
#####################################################
Code Button:

ArquivoBaixado is buffer

Url is string = "http://www.informaticon.com.br/j/images/stories/neri.jpg"

ok is boolean = httprequest(url)

if ok = true
ArquivoBaixado = httpgetresult()
else
info(errorinfo())
end

fSaveBuffer("c:\fotodonerigaldeiro.jpg",ArquivoBaixado)

Ex06: Retorna uma executavel (download de arquivo)
#####################################################
Code Button:

ArquivoBaixado is buffer

Url is string = "http://www.7-zip.org/a/7z920.exe"

ok is boolean = httprequest(url)

if ok = true
ArquivoBaixado = httpgetresult()
else
info(errorinfo())
end

fSaveBuffer("7z920.exe",ArquivoBaixado)

Ex07: SOAP
#####################################################
http://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/121-httprequest-envelope-soap/read.awp

Ex08: Download + ProgressBar
#####################################################
HTTPProgressBar(PROGBAR_download)
arquivo is boolean = HTTPRequest("http://www.amarildomatos.com.br/clientes_arquivos/dll262.zip")
HTTPProgressBar("")
adrianoboller
28 Feb. 2015
Adresse IP PUBLIQUE
sSourcePage est une chaîne ANSI
sIPPublic est une chaîne ANSI

SI HTTPRequête("http://checkip.dyndns.org")=Vrai ALORS
sSourcePage = HTTPDonneRésultat()
sIPPublic=sSourcePage[[Position(sSourcePage,": ")+2 A Position(sSourcePage,"</body>")-1]]
FIN
MoiMême=sIPPublic
jaguard91
02 Apr. 2014