PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Réception d'un JSON
Réception d'un JSON
Débuté par Chris, 30 mai 2019 11:51 - 9 réponses
Membre enregistré
70 messages
Posté le 30 mai 2019 - 11:51
Bonjour,

Je suis inscrit à un webhook qui appel ma page AWP en passant un JSON.
Le développeur m'indique que je n'ai qu'à lire le BODY.
Comment fait-on ça avec Webdev ?

En PHP ça donnerait :
// Takes raw data from the request
$json = file_get_contents('php://input');

// Converts it into a PHP object
$data = json_decode($json);
Membre enregistré
70 messages
Posté le 03 juin 2019 - 14:28
Any idea ?
Membre enregistré
324 messages
Popularité : +21 (51 votes)
Posté le 03 juin 2019 - 14:54
httprequête suivit d'un httpDonneRésultat , le reste faut regarder dans l'aide, y'a une option pour ne demander que l'http en tête.

En tapant juste http dans l'aide vous auriez trouver la réponse depuis longtemps. Y'a une règle simple sur les forums, si personne ne réponds c'est que 99.99% du temps la réponse est soit déjà dans le forum, soit tellement évidente qu'une petite recherche donne la solution

Vous pouvez aussi regarder :

maReq est un httpRequête
maRep est un httpRéponse
maReqRest est un restRequête
maRepRest est un restRéponse
Membre enregistré
70 messages
Posté le 03 juin 2019 - 16:06
Merci pour cette réponse mais dans ce cas de programmation, je développe la page qui reçoit la requête. Pas celle qui doit envoyer la requête...
Membre enregistré
950 messages
Popularité : +53 (63 votes)
Posté le 03 juin 2019 - 17:27
Bonjour,

si le webhook, appel ta page, il doit te passer un parametre soit en GET soit en POST,

donc je dirai

sjson est une chaîne = PageParamètre(paramBuffer)


à l'initialisation de la page

jordan
Membre enregistré
70 messages
Posté le 04 juin 2019 - 09:22
Voici mon code PHP :

<?php
$body = file_get_contents("php://input");
$webhook = json_decode($body, True);

$fichier = fOpen("webhook\\".date('Y-m-d_H-i-s')."-php.json", "w+");
fputs($fichier, $body);
fClose($fichier);
?>


Et mon code Webdev sur une page AWP - Code initialisation de la page :

gsResultat est une chaîne
gsChemin est une chaîne = fRepDonnées() + [fSep] + "Voxeet"

QUAND EXCEPTIONEXCEPTION DANS
gsResultat = PageParamètre(paramBuffer)
FAIRE
gsResultat = ExceptionInfo()
FIN

SI PAS fRépertoireExiste(gsChemin) ALORS
fRepCrée(gsChemin)
FIN

fSauveTexte(gsChemin + [fSep] + DateHeureSys() + ".json",gsResultat)


En PHP je retrouve bien le JSON reçu.
En Webdev, je n'ai rien comme contenu.

Je n'ai plus trop de piste... A part monter un système bancale qui arrive sur le PHP puis appel une page AWP...
Membre enregistré
950 messages
Popularité : +53 (63 votes)
Posté le 04 juin 2019 - 09:51
Bonjour,

sinon fait toi un webservice REST, qui fera le même effet que ta page awp, à la différence c'est que tu vas pouvoir lire tout ce que le webhook te renvoi avec Webserviceparametre(parambuffer)

Parce que de mémoire, pageparametre a du mal avec les requête POST si elle sont au mauvais format

Jordan
Membre enregistré
70 messages
Posté le 04 juin 2019 - 10:39
Je viens de tester avec un web service REST (qui accepte du POST) et la commande "Webserviceparametre(parambuffer)" et j'ai toujours mon fichier JSON qui est vide.
Membre enregistré
950 messages
Popularité : +53 (63 votes)
Posté le 04 juin 2019 - 16:31
sur ton webservice rest en format de la requête tu as quoi ?
Membre enregistré
70 messages
Posté le 04 juin 2019 - 17:03
Je reçois directement un JSON.
Que j'arrive à avoir avec un simple PHP :
$json = file_get_contents('php://input');


J'ai décidé de stocker le résultat sur le disque et de faire un traitement via une tâche planifiée Webdev des fichiers JSON.