PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → httpdonneresultat ne donne rien ...
httpdonneresultat ne donne rien ...
Started by dr400, Mar., 19 2017 9:53 PM - 21 replies
Registered member
19 messages
Posted on March, 19 2017 - 9:53 PM
Bonjour,

j'ai un souci avec httpdonneresultat qui marche à la perfection sur le simulateur mais renvoie du vide sur le téléphone.

Après de longues recherches, j'ai essayé avec ANSIVERSUNICODE et d'autres combinaisons mais rien ... je désespère ...

j'ai cru comprendre que le pb venait du codage mais j'ai du mal à comprendre la problématique ...

HELP !!!!

(Avec windev développez 10 fois plus vite ... 2 jours de recherche pour un simple HTTP GET ... ca va être plus long que prévu !)
Message modified, March, 19 2017 - 10:12 PM
Registered member
129 messages
Popularité : +5 (5 votes)
Posted on March, 20 2017 - 5:14 AM
Bonjour,

As-tu essayé

...
buf_Res est un buffer = HTTPDonneRésultat(httpRésultat)
str_Res est une chaîne UNICODE = bufRes
...


ou

...
buf_Res est un buffer = HTTPDonneRésultat(httpRésultat)
str_Res est une chaîne ANSI = UnicodeVersAnsi(bufRes)
...


--
Cdlt
JPhD
Message modified, March, 20 2017 - 5:17 AM
Registered member
129 messages
Popularité : +5 (5 votes)
Posted on March, 20 2017 - 8:06 AM
Il faut lire buf_Res dans les 2nd lignes :o

--
Cdlt
JPhD
Message modified, March, 20 2017 - 8:06 AM
Registered member
19 messages
Posted on March, 20 2017 - 10:06 AM
Jean-Philippe DEGLET a écrit :
Bonjour,

As-tu essayé

...
buf_Res est un buffer = HTTPDonneRésultat(httpRésultat)
str_Res est une chaîne UNICODE = bufRes
...


ou

...
buf_Res est un buffer = HTTPDonneRésultat(httpRésultat)
str_Res est une chaîne ANSI = UnicodeVersAnsi(bufRes)
...


--
Cdlt
JPhD


cas 1 ne fonctionne pas ... le champ libellé alimenté par buf_res reste vide ...
Registered member
19 messages
Posted on March, 20 2017 - 10:22 AM
Jean-Philippe DEGLET a écrit :
Bonjour,

As-tu essayé

...
buf_Res est un buffer = HTTPDonneRésultat(httpRésultat)
str_Res est une chaîne UNICODE = bufRes
...


ou

...
buf_Res est un buffer = HTTPDonneRésultat(httpRésultat)
str_Res est une chaîne ANSI = UnicodeVersAnsi(bufRes)
...


--
Cdlt
JPhD
Message modifié, 20 mars 2017 - 05:17


le cas 2 me donne que des ?????
Posted on March, 20 2017 - 1:39 PM
Bonjour

Sauf cas particulier, le résultat d'un httprequete est une chaine ANSI...

Donc, à toi de mettre ce résultat dans une chaine ANSI, PUIS de
convertir ou pas en unicode en fonction de ce que tu fais avec ensuite...

Et non, tu ne peux pas mettre ça sur le dos de windev.

Si tu veux des réponses plus précises, il faudra nous montrer ton code.


Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 3/20/2017 à 4:22 AM, dr400 a écrit :
Jean-Philippe DEGLET a écrit :
Bonjour,

As-tu essayé

...
buf_Res est un buffer = HTTPDonneRésultat(httpRésultat)
str_Res est une chaîne UNICODE = bufRes
...


ou

...
buf_Res est un buffer = HTTPDonneRésultat(httpRésultat)
str_Res est une chaîne ANSI = UnicodeVersAnsi(bufRes)
...


--
Cdlt
JPhD
Message modifié, 20 mars 2017 - 05:17

le cas 2 me donne que des ?????
Registered member
19 messages
Posted on March, 20 2017 - 5:25 PM
Fabrice Harari a écrit :
Bonjour

Sauf cas particulier, le résultat d'un httprequete est une chaine ANSI...

Donc, à toi de mettre ce résultat dans une chaine ANSI, PUIS de
convertir ou pas en unicode en fonction de ce que tu fais avec ensuite...

Et non, tu ne peux pas mettre ça sur le dos de windev.

Si tu veux des réponses plus précises, il faudra nous montrer ton code.


Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International


Bonjour, loin de moi l'idée de "mettre ça sur le dos" de qui que ce soit... mais de constater que je galère depuis plus de 3 jours sur cet aspect pourtant trivial (???) ... j'ai développé avec d'autres IDE sans que cette problématique me prenne autant de temps... Votre formule (vous êtes Consultant donc lié à windev) de "développer 10x plus vite" ne s'adresse donc pas à moi, et à lire les différents posts, ne s'adresse pas non plus à ceux qui ont galéré (y sont-ils même arrivés ???) comme moi ... Mon sujet n'est pas de dénigrer WD mais de trouver une solution à MON problème et surtout de comprendre pourquoi ce n'est pas trivial.

Pour revenir au sujet qui m'intéresse, j'ai essayé bcp de combinaisons ANSI - UNICODE - Buffer - Ansivers... - Unicodevers ... que j'ai pu rencontrer allant même jusqu'à modifier la description du projet (cf photo-ci-dessous).


https://www.dropbox.com/s/cfhiil9yyz040k3/Sans%20titre.png?dl=1

mon code est simple :

gsAdresseicnagenda est une chaîne ANSI = "http://www.google.fr"
gsCmarequete est une chaîne ANSI = HTTPRequête(gsAdresseicnagenda)
gsCmareponse est un chaîne ANSI = HTTPDonneRésultat()
LIB_vac..Libellé = "la réponse est : " + gsCmareponse


Mon problème est surtout de comprendre pourquoi sur le "GO" j'ai une sortie conforme à ma requête :

https://www.dropbox.com/s/cfhiil9yyz040k3/Sans%20titre.png?dl=1

et que le même code porté sur le téléphone me renvoie du vide ...


https://www.dropbox.com/s/h8ip5ofpobuwlp0/Screenshot_2017-03-20-17-14-40.png?dl=1
Registered member
19 messages
Posted on March, 20 2017 - 5:35 PM
gsAdresseicnagenda est une chaîne ANSI = "http://www.google.fr"
gsCmarequete est une chaîne ANSI = HTTPRequête(gsAdresseicnagenda)
gsCmareponse est un chaîne ANSI = HTTPDonneRésultat()
gsSlibelle est une chaîne UNICODE = AnsiVersUnicode((gsCmareponse))
LIB_vac..Libellé = "la réponse est : " + gsSlibelle


renvoie ce que j'attends sur le "GO" mais un libellé vide sur le téléphone ...
Posted on March, 20 2017 - 5:40 PM
Peut-être que tester le retour des fonctions avec ErreurDétectée et ErreurInfo vous donnerait un début d'explication ?
Registered member
129 messages
Popularité : +5 (5 votes)
Posted on March, 20 2017 - 5:45 PM
Re,

Je pense à deux trucs :

1) Tester ta requête
gsAdresseicnagenda est une chaîne UNICODE = "http://www.google.fr"
gsCmareponse, gsErreurHTTP sont des chaînes UNICODE

// Envoi de la requête
SI httpRequête(gsAdresseicnagenda) ALORS
// La requête a pu être envoyée, il s'agit d'une URL valide
gsCmareponse = HTTPDonneRésultat()
SI Taille(gsCmareponse) = 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
...


2) L’utilisation de cette fonction entraîne la modification des permissions requises par l’application.
Permission requise : INTERNET.

--
Cdlt
JPhD
Posted on March, 20 2017 - 5:46 PM
3) Le téléphone n'a pas d'accès à Internet...
Registered member
19 messages
Posted on March, 20 2017 - 5:52 PM
Avec ce code, les champs des deux (GO et réel) sont vides :-(

Merci pour ton aide !!

Jean-Philippe DEGLET a écrit :
Re,

Je pense à deux trucs :

1) Tester ta requête
gsAdresseicnagenda est une chaîne UNICODE = "http://www.google.fr"
gsCmareponse, gsErreurHTTP sont des chaînes UNICODE

// Envoi de la requête
SI httpRequête(gsAdresseicnagenda) ALORS
// La requête a pu être envoyée, il s'agit d'une URL valide
gsCmareponse = HTTPDonneRésultat()
SI Taille(gsCmareponse) = 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
...


2) L’utilisation de cette fonction entraîne la modification des permissions requises par l’application.
Permission requise : INTERNET.

--
Cdlt
JPhD
Message modified, March, 20 2017 - 5:55 PM
Registered member
19 messages
Posted on March, 20 2017 - 6:10 PM
wddev a écrit :
> 3) Le téléphone n'a pas d'accès à Internet...

Heu si (wifi branché et testé) ... avec le code donné par JPhD, je n'ai pas de retour d'erreur dc accés internet ok non? et pourtant le libellé reste désespérément vide ...
Registered member
129 messages
Popularité : +5 (5 votes)
Posted on March, 20 2017 - 6:15 PM
As-tu vérifié le point 2) Permission d'accéder à Internet

Le code que je viens de tester et qui fonctionnne
gsAdresseicnagenda est une chaîne = "http://www.google.fr"
GsCmareponse, GsErreurHTTP sont des chaînes

// Envoi de la requête
SI httpRequête(gsAdresseicnagenda) ALORS
// La requête a pu être envoyée, il s'agit d'une URL valide
GsCmareponse = AnsiVersUnicode(HTTPDonneRésultat(httpRésultat))
SI Taille(GsCmareponse) = 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
GsErreurHTTP = HTTPDonneRésultat(httpEntête)
Erreur(GsErreurHTTP)
FIN
FIN


--
Cdlt
JPhD
Registered member
19 messages
Posted on March, 20 2017 - 6:17 PM
wddev a écrit :
> Peut-être que tester le retour des fonctions avec ErreurDétectée et ErreurInfo vous donnerait un début d'explication ?

heu comment préciser mon pb : sur le "go" tout marche comme sur des roulettes, aucune erreur, c'est le bonheur, une application aux petits oignons exactement comme je la veux ... mais voilà, la même requête lancée sur le téléphone ne renvoie rien, le vide, aucune erreur, une "info" sur la requête indique qu'elle a bien été faite, mais le httpdonnerésultat(httpresultat) ne renvoie rien, le vide, le néant ...
Registered member
19 messages
Posted on March, 20 2017 - 6:20 PM
Jean-Philippe DEGLET a écrit :
As-tu vérifié le point 2) Permission d'accéder à Internet

Le code que je viens de tester et qui fonctionnne
gsAdresseicnagenda est une chaîne = "http://www.google.fr"
GsCmareponse, GsErreurHTTP sont des chaînes

// Envoi de la requête
SI httpRequête(gsAdresseicnagenda) ALORS
// La requête a pu être envoyée, il s'agit d'une URL valide
GsCmareponse = AnsiVersUnicode(HTTPDonneRésultat(httpRésultat))
SI Taille(GsCmareponse) = 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
GsErreurHTTP = HTTPDonneRésultat(httpEntête)
Erreur(GsErreurHTTP)
FIN
FIN


--
Cdlt
JPhD


oui merci JPh, à la génération de l'apk, je vérifie que la permission internet est bien donnée ... et je viens de m'en assurer encore ...

Ton code fonctionne nickel sur le GO mais en est-il de même sur le téléphone (pour moi, il ne renvoie rien) ?
Posted on March, 20 2017 - 6:27 PM
Votre code est effectivement trivial est fonctionne correctement le problème est donc ailleurs (pb de connexion Internet, proxy, etc.). C'est pour ca qu'il faut toujours tester le retour des fonctions.
Que vous affiche le code suivant :

gsAdresseicnagenda est une chaîne ANSI = "http://www.google.fr"
gsCmarequete est une chaîne ANSI = HTTPRequête(gsAdresseicnagenda)
SI ErreurDétectée ALORS
Erreur(ErreurInfo())
SINON
gsCmareponse est un chaîne ANSI = HTTPDonneRésultat()
SI ErreurDétectée ALORS
Erreur(ErreurInfo())
SINON
gsSlibelle est une chaîne UNICODE = AnsiVersUnicode((gsCmareponse))
LIB_vac..Libellé = "la réponse est : " + gsSlibelle
FIN
FIN
Registered member
129 messages
Popularité : +5 (5 votes)
Posted on March, 20 2017 - 6:38 PM
Oui, ce code fonctionne en Simulation et sur un Device Samsung

...
gsAdresseicnagenda est une chaîne = "http://www.google.fr"
GsCmareponse, GsErreurHTTP sont des chaînes

// Envoi de la requête
SI httpRequête(gsAdresseicnagenda) ALORS
// La requête a pu être envoyée, il s'agit d'une URL valide
GsCmareponse = AnsiVersUnicode(HTTPDonneRésultat(httpRésultat))
SI Taille(GsCmareponse) = 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
GsErreurHTTP = HTTPDonneRésultat(httpEntête)
Erreur(GsErreurHTTP)
FIN
FIN
Info(GsCmareponse)
...


--
Cdlt
JPhD
Message modified, March, 20 2017 - 6:39 PM
Registered member
19 messages
Posted on March, 20 2017 - 6:43 PM
gsAdresseicnagenda est une chaîne = "http://www.google.fr"
GsCmareponse, GsErreurHTTP sont des chaînes
resConnexion est un booléen
resConnexion = InternetConnecté()
SI resConnexion = Vrai ALORS
Info("Une connexion Internet est active")


// Envoi de la requête
SI httpRequête(gsAdresseicnagenda) ALORS
// La requête a pu être envoyée, il s'agit d'une URL valide
GsCmareponse = AnsiVersUnicode(HTTPDonneRésultat(httpRésultat))
SI Taille(GsCmareponse) = 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
GsErreurHTTP = HTTPDonneRésultat(httpEntête)
Erreur(GsErreurHTTP)
FIN

FIN

SINON
Info("Aucune connexion Internet n'est active")
FIN

LIB_vac..Libellé = "result : " + GsErreurHTTP + "///" + GsCmareponse


me renvoie que la connexion est active ... mais le libellé reste encore et toujours vide ... sauf les "///" qui sont censés séparés l'entête du résultat ...
Registered member
19 messages
Posted on March, 20 2017 - 6:44 PM
Jean-Philippe DEGLET a écrit :
Oui, ce code fonctionne en Simulation et sur un Device Samsung

...
gsAdresseicnagenda est une chaîne = "http://www.google.fr"
GsCmareponse, GsErreurHTTP sont des chaînes

// Envoi de la requête
SI httpRequête(gsAdresseicnagenda) ALORS
// La requête a pu être envoyée, il s'agit d'une URL valide
GsCmareponse = AnsiVersUnicode(HTTPDonneRésultat(httpRésultat))
SI Taille(GsCmareponse) = 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
GsErreurHTTP = HTTPDonneRésultat(httpEntête)
Erreur(GsErreurHTTP)
FIN
FIN
Info(GsCmareponse)
...


--
Cdlt
JPhD
Message modifié, 20 mars 2017 - 18:39


Alors je vais me jeter du pont ... ;-(

le "info" renvoie un champ vide ... aaaarrrrrggggllll
Message modified, March, 20 2017 - 7:09 PM
Registered member
129 messages
Popularité : +5 (5 votes)
Posted on March, 20 2017 - 7:23 PM
La seule différence que je comprend : ta version Express comparée à ma licence "pleine".

--
Cdlt
JPhD
Message modified, March, 20 2017 - 7:23 PM
Registered member
19 messages
Posted on March, 20 2017 - 7:48 PM
Jean-Philippe DEGLET a écrit :
La seule différence que je comprend : ta version Express comparée à ma licence "pleine".

--
Cdlt
JPhD
Message modifié, 20 mars 2017 - 19:23

et le fait que le téléphone soit connecté en débogage usb ??? je ne peux pas croire que la version express limite ce genre de process ... en tout cas, je viens de déplacer l'apk créé lors de la génération de l'application et de l'installer sur un autre téléphone et maintenant ca semble fonctionner ... je ne comprends toujours pas pourquoi ça a bogué à part cette histoire de version express et le débogage usb ... En tout cas mille mercis JPh pour ton aide !!!!!!