Problème pour envoyer un fichier json avec curl(POST)
Résolu
stgcici
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Problème pour envoyer un fichier json avec curl(POST)
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
2 réponses
Bonjour
Pas sûr, mais il me semble qu'il faut une espace après le ":" dans :
Pas sûr, mais il me semble qu'il faut une espace après le ":" dans :
"Accept: application/json", "Content-type: application/json",
Salut,
D'après le message d'erreur, les données que tu envois ne sont pas dans le bon format.
Si je comprend bien, tu dois envoyer le contenu de ton fichier json. Mais dans ton code la variable $data ne contient que le nom du fichier et pas son contenu.
D'après le message d'erreur, les données que tu envois ne sont pas dans le bon format.
Si je comprend bien, tu dois envoyer le contenu de ton fichier json. Mais dans ton code la variable $data ne contient que le nom du fichier et pas son contenu.
salut.
C'est vrai mais ce que je veux faire c'est de pouvoir envoyer le fichier contenant les informations au serveur.Puis ce que la variable $data contient le nom du fichier je suppose que le fichier contient les infos que je veux envoyer.
Au faite ce que je veux faire c'est de récupérer des infos d'une base de données et de les formatées au format json et l'enregistrer dans un fichier afin de l'envoyer au serveur.
C'est vrai mais ce que je veux faire c'est de pouvoir envoyer le fichier contenant les informations au serveur.Puis ce que la variable $data contient le nom du fichier je suppose que le fichier contient les infos que je veux envoyer.
Au faite ce que je veux faire c'est de récupérer des infos d'une base de données et de les formatées au format json et l'enregistrer dans un fichier afin de l'envoyer au serveur.
Pourquoi enregistrer des données dans un fichier si elles proviennent d'une base de données ?
Le plus simple étant de :
1 - se connecter à la bdd et exécuter la requête pour récupérer les informations à envoyer
2 - utiliser la fonction json_encode() pour encoder les données récupérées au format json
3 - stocker les données au format json dans la variable $data pour l'envoyer au serveur via cUrl
Le plus simple étant de :
1 - se connecter à la bdd et exécuter la requête pour récupérer les informations à envoyer
2 - utiliser la fonction json_encode() pour encoder les données récupérées au format json
3 - stocker les données au format json dans la variable $data pour l'envoyer au serveur via cUrl
J'avais utiliser la fonction json_encode($valeur) pour encoder directement les données recupére dans la BD pour l'envoyer au serveur.
Mais le problème est le format json des données encodé avec json_encode() ne correspond pas au format json attendu par le serveur(au faite avec json_encode les données sont sous la forme ["valeur1","valeur2",....,"valeurn"] pourtant le format que moi je veux c'est par exemple [{"nom1":"valeur1","nom2":"valeur2}]").
Du coup je suis obliger de moi même construire mon fichier json avec les données de la BD.
Mais le problème est le format json des données encodé avec json_encode() ne correspond pas au format json attendu par le serveur(au faite avec json_encode les données sont sous la forme ["valeur1","valeur2",....,"valeurn"] pourtant le format que moi je veux c'est par exemple [{"nom1":"valeur1","nom2":"valeur2}]").
Du coup je suis obliger de moi même construire mon fichier json avec les données de la BD.
le format json des données encodé avec json_encode() ne correspond pas au format json attendu par le serveur
Il n'existe qu'un seul format json, il ne devrait pas y avoir de problème à ce niveau. Regarde les exemples de cette page pour comprendre comment obtenir le format que tu souhaites (encodage d'un tableau vs objet) : https://www.php.net/manual/fr/function.json-encode.php
En mettant la fonction json_encode() de coté, as tu vraiment besoin d'utiliser un fichier pour construire des données post ? Pourquoi ne pas directement les stocker dans la variable php $data ?
Supposons encore que tu souhaites conserver ton fichier, il faut dans ce cas que tu récupères le contenu de ce fichier pour le stocker dans la variable $data (qui correspond aux données envoyées en post). Pour récupérer le contenu de ton fichier, tu peux utiliser la fonction file_get_contents().
Il n'existe qu'un seul format json, il ne devrait pas y avoir de problème à ce niveau. Regarde les exemples de cette page pour comprendre comment obtenir le format que tu souhaites (encodage d'un tableau vs objet) : https://www.php.net/manual/fr/function.json-encode.php
En mettant la fonction json_encode() de coté, as tu vraiment besoin d'utiliser un fichier pour construire des données post ? Pourquoi ne pas directement les stocker dans la variable php $data ?
Supposons encore que tu souhaites conserver ton fichier, il faut dans ce cas que tu récupères le contenu de ce fichier pour le stocker dans la variable $data (qui correspond aux données envoyées en post). Pour récupérer le contenu de ton fichier, tu peux utiliser la fonction file_get_contents().
Merci pour ta réponse.
je vais de se pas apporté les modifs voir ce que sa donne.
Merci.
Au faite ce que je veux faire c'est de récupérer des infos d'une base de données et de les formatées au format json et l'enregistrer dans un fichier afin de l'envoyer au serveur.