PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → HTTPRequete sur https
HTTPRequete sur https
Débuté par Jerome G, 10 juil. 2017 15:43 - 5 réponses
Posté le 10 juillet 2017 - 15:43
Bonjour,

Un de nos logiciel interrrogeait le webservice mis a disposition par l'INSEE avec par exemple :
HTTPRequête("http://www.bdm.insee.fr/series/sdmx/data/SERIES_BDM/001711010?detail=dataonly&lastNObservations=50")


Depuis le mois dernier l'INSEE est passé en https mais maintenant avec :
HTTPRequête("https://www.bdm.insee.fr/series/sdmx/data/SERIES_BDM/001711010?detail=dataonly&lastNObservations=50")

L'interrogation se passe bien, par contre la reponse du WS c'est qu'il n'y a pas résultat, comme s'il n'arrivait pas a decrypter la valeur 001711010.
Par contre, cette URL renvoit toujours bien les bons resultats depuis n'importe quel navigateur.

Quelqu'un aurait-il une idée du pourquoi on a cette différence entre navigateur et windev?
Posté le 11 juillet 2017 - 09:21
Bonjour,

J'ai oublié de préciser,
Ce problmeme se produit au moins jusqu'a la version 21 de Windev/Webdev.
Je n'ai pas pu tester en 22.

Jerome.
Membre enregistré
945 messages
Popularité : +53 (63 votes)
Posté le 11 juillet 2017 - 20:09
Bonjour,

il peut y avoir un problème de certificat,

essaye ce code (aide en ligne)

ResLancement = HTTPRequête("https://www.bdm.insee.fr/series/sdmx/data/SERIES_BDM/001711010?detail=dataonly&lastNObservations=50")
// Si erreur rencontrée
SI ResLancement = Faux ALORS
// Selon le type d'erreur rencontré
SELON ErreurInfo(errCode)
// Certificat invalide
// ou ne provenant pas d'une société connue
CAS httpErreurCertificatInvalide :
// Ignorer le certificat ?
SI OuiNon("Alerte de sécurité détectée !", ...
"Certificat invalide.", ...
"Ignorer ce certificat ?") = Oui ALORS
HTTP.IgnoreErreur = httpIgnoreCertificatInvalide
// Nouveau lancement de la requête
// en ignorant cette erreur
HTTPRequête("https://www.bdm.insee.fr/series/sdmx/data/SERIES_BDM/001711010?detail=dataonly&lastNObservations=50")
FIN
// Date du certificat non-valide ou expiré
CAS httpErreurCertificatExpiré :
// Ignorer la date du certificat ?
SI OuiNon("Alerte de sécurité détectée !", ...
"Date du certificat invalide ou expiré.", ...
"Ignorer cette date ?") = Oui ALORS
HTTP.IgnoreErreur = httpIgnoreCertificatExpiré
// Nouveau lancement de la requête
// en ignorant cette erreur
HTTPRequête("https://www.bdm.insee.fr/series/sdmx/data/SERIES_BDM/001711010?detail=dataonly&lastNObservations=50")
FIN
FIN
FIN


jordan
Posté le 12 juillet 2017 - 09:58
Merci pour votre réponse.

Le problème est que resLancement est vrai.
Le serveur repond bien mais sa reponse est systematiquement "Il n'y a pas de resultats".

Alors que dans un navigateur, la reponse est différenter, avec des resultats..
Membre enregistré
945 messages
Popularité : +53 (63 votes)
Posté le 12 juillet 2017 - 12:01
Bonjour,

Effectivement avec httprequete() cela ne fonctionne pas,

avec ce code ca fonctionne parcontre
reqhttpenvoi est un httpRequête
reqhttpenvoi..URL = "https://www.bdm.insee.fr/series/sdmx/data/SERIES_BDM/001711010?detail=dataonly&lastNObservations=50"
reqhttpreponse est un httpRéponse

reqhttpreponse = HTTPEnvoie(reqhttpenvoi)
Info(reqhttpreponse.Contenu)


jordan
Posté le 12 juillet 2017 - 17:11
ah super !

Merci beaucoup, effectivement, je n'avais pas testé en version "objet".
Visiblement, ca n'est pas équivalent (et a la base, ca n'existe pas ds la v19 celle actuellement en prod chez moi )

Encore merci,

Jérôme.