Bonjour à tous
Suite précédent échange avec @olive sur un autre fil, j’essaie de faire des modifications dans un plugin pour gérer des devices supplémentaires.
Le but de cette modif est d’apporter une contribution et pousser les modifs sur le plugin officiel pour l’ajout de nouveaux device.
J’ai donc besoin de faire des reqettes http GET et PUT vers mon device car le doc de l’API explicite qu’il y a ces 2 types de requetes à utiliser.
En ligne de commande ça roule via curl via un curl -X PUT ou GET « http://… »
Le plugin concerné n’utilise par curl mais com_http en php donc.
Est il possible via com_http de faire des requetes en PUT et GET ?
Est ce que com_http est une méthode de jeedom car je ne trouve pas d’info sur la doc PHP.
Ca m’éviterait d’avoir à construire mes lignes de commandes ssh…
J’ai vu aussi qu’on pouvait utiliser en PHP curl_init. Quelle difference avec un com_http ?
Au niveau auth, j’ai besoin du BASIC pour le moment. Pas de DIGEST
Thx
Bonjour,
com_http est une class du core de jeedom effectivement.
Pour faire une requête POST
, PUT
ou DELETE
il faut utiliser la méthode setPost()
, setPut()
ou setDelete()
et y passer le payload (json_encoded si nécessaire, ce qui est le cas à priori)
Exemple:
$data = array(
'language' => 'xxx'
);
$request_http = new com_http($url);
$request_http->setHeader(array('Content-Type: application/json'));
$request_http->setPut(json_encode($data));
$result = json_decode($request_http->exec(10, 1), true);
edit: c’est bien curl qui est utilisé derrière cette class
Top merci
Du coup si je peux utiliser les fonctions du core c’est d’autant mieux.
Et pour le GET qui me permet de faire un appel API puis d’obtenir un XML en retour, quelle fonction dois-je appeler ?
rien de spécial, juste l’exec
L’url et le querystring seront dans la variable $url
dans mon exemple;
il n’y a pas de payload dans un get (en principe)
Ok
Ca marche je vais essayer.
J’ai trouvé sur le github la doc et la classe.
Sinon rien à voir, y a t-il une classe du core permettant d’exploiter facilement du XML reçu via ces méthodes. Les XML sont pas forcément complexes en soit mais un peu fourni.
J’ai vu que certains plugins convertissaient le XML en JSON pour exploiter les objets plus facilement directement en PHP
Rien à voir effectivement, une petite recherche et j’ai trouvé ceci: PHP: simplexml_load_string - Manual
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.