Requete curl post et mosquitto

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requete curl post et mosquitto

Re: Requete curl post et mosquitto

par olistaps » 11 janv. 2021, 01:18

J'ai réussi à mettre en forme mon message mais impossible de bien publier avec mosquitto php...avec les bons arguments (bref je trouve pas et j'ai déjà plus trop de cheveux...)

Avec le mode bisounours activé comme la commande mosquitto dans le terminal fonctionne nickel je suis en train de chercher un truc comme cela
/// $response2 étant la variable mise en forme ;
$output = shell_exec('mosquitto_pub -h localhost -t aps -m $response2');
echo "<pre>$output</pre>";
Cela semble exister ?

Re: Requete curl post et mosquitto

par olistaps » 09 janv. 2021, 22:45

Bon et bien en faites le code....fonctionne (je suis vert d'avoir zappé cela, en tout cas merci beaucoup)

J'avais oublié plusieurs choses dans ma mise en forme
la réponse est :
{"code":1,"data":{"XXX":{"duration":"7","total":"10.752255","month":"1.168628","year":"1.168628","today":"0.180580","co2":"7.906070","tree":"0.395303","power":"13.000000","type":0,"capacity":"2.18"}},"message":"Réussir"}

et il me faudrait raccourcir ça c'est ok mais l'ajout des backlashing ne fonctionne pas pour au final donner cela :
{\"duration\":"10",\"total\":"12.197575",\"month\":"2.613948",\"year\":"2.613948",\"today\":"0.932200",\"co2\":"8.968805",\"tree\":"0.448440",\"power\":"10.000000",\"type\":0,\"capacity\":"2.18"}

J'ai fait cela ci dessous
Impossible d'ajouter un backlash en 2eme position et avant " autrement le reste est ok

<?php
$response = '{"code":1,"data":{"0b284800766b17bb0176a4ba048b64a2":{"duration":"10","total":"12.197575","month":"2.613948","year":"2.613948","today":"0.932200","co2":"8.968805","tree":"0.448440","power":"10.000000","type":0,"capacity":"2.18"}},"message":"Réussir"}';
$response = substr($response,53);
$response = substr($response,0,-23);
$response = substr_replace($response,'\\\\',1,0); => cela met deux \\ impossible 1 uniquement
$search = array("duration") ;
$replace = array("duration'\'");
$response1 = str_replace($search,$replace, $response);
$search = array("total") ;
$replace = array("total'\'");
$response2 = str_replace($search,$replace, $response1);
$search = array("month") ;
$replace = array("month'\'");
$response3 = str_replace($search,$replace, $response2);
$search = array("year") ;
$replace = array("year'\'");
$response4 = str_replace($search,$replace, $response3);
$search = array("today") ;
$replace = array("today'\'");
$response5 = str_replace($search,$replace, $response4);
$search = array("co2") ;
$replace = array("co2'\'");
$response6 = str_replace($search,$replace, $response5);
$search = array("tree") ;
$replace = array("tree'\'");
$response7 = str_replace($search,$replace, $response6);
$search = array("power") ;
$replace = array("power'\'");
$response8 = str_replace($search,$replace, $response7);
$search = array("type") ;
$replace = array("type'\'");
$response9 = str_replace($search,$replace, $response8);
$search = array("capacity") ;
$replace = array("capacity'\'");
$response10 = str_replace($search,$replace, $response9);
$response2 = str_replace("'","", $response10);
echo $response2;
?>

enfin puis directement utiliser cette commande dans une page php ou dois je passer autrement ?
mosquitto_pub -h localhost -t aps -m $response2

merci merci

Re: Requete curl post et mosquitto

par or 1 » 09 janv. 2021, 20:56

un tel site ne peut que bloquer une telle fonction.
il faut donc tester en local ou sur un vrai hébergeur.

Re: Requete curl post et mosquitto

par olistaps » 09 janv. 2021, 20:50

Un oubli c'est clair de mettre l'erreur... (j'ai testé mon code dans phptester)
FATAL ERROR syntax error, unexpected ')' on line number 8
Merci

Re: Requete curl post et mosquitto

par or 1 » 09 janv. 2021, 20:44

il faut lire et comprendre les messages d'erreur, avec l'aide de google si nécessaire.
et nous donner ce message d'erreur.

Requete curl post et mosquitto

par olistaps » 09 janv. 2021, 20:18

Bonjour à tous,
Merci de passer sur mon sujet et si vous avez un peu de temps pour m'aider, m'aiguiller dans mes recherches mille mercis.
Mon objectif est que la réponse http via curl, soit mise en forme puis envoyer à mon broker (mosquitto).
Tout de suite je passe la mise en forme que j'ai réussi à faire mais ma requete curl en php ne fonctionne pas

Ma rêquete curl :
curl -d "access_token=XXX&language=fr_FR&userId=XXX&checkcode=XXX" -H "Content-Type: application/x-www-form-urlencoded" -X POST "XXX"
donne :
{"code":1,"data":{"XXX":{"duration":"7","total":"10.752255","month":"1.168628","year":"1.168628","today":"0.180580","co2":"7.906070","tree":"0.395303","power":"13.000000","type":0,"capacity":"2.18"}},"message":"Réussir"}

J'ai tenté de faire cela en php
<?php
$data = array(
'access_token' => 'XXX',
'language' => 'fr_FR',
'userId' => 'XXX',
'checkcode' => 'XXX');

$curls = curl_init();
curl_setopt($curls, CURLOPT_URL, 'XXX');
curl_setopt($curls, CURLOPT_POST, true);
curl_setopt($curls, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curls, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
$reponse = curl_exec($curls);
curl_close($curls);
echo $reponse;
?>
Et là c'est le drame... fatal error à la ligne $curls = curl_init(); et je ne comprends pas ...

Après la mise en forme de la réponse, j'ai trouvé comme faire
Enfin, peux ton lancer la commande ci dessous en php avec la variable $reponse comme cela ? :

mosquitto_pub -h localhost -t aps -m $reponse

Merci encore