Problème pour envoyer un fichier json avec curl(POST)
Résolu/Fermé
stgcici
Messages postés
51
Date d'inscription
mardi 29 octobre 2013
Statut
Membre
Dernière intervention
18 février 2014
-
20 déc. 2013 à 14:11
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 20 déc. 2013 à 17:16
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 20 déc. 2013 à 17:16
A voir également:
- Problème pour envoyer un fichier json avec curl(POST)
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
2 réponses
Utilisateur anonyme
20 déc. 2013 à 14:32
20 déc. 2013 à 14:32
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",
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
20 déc. 2013 à 14:58
20 déc. 2013 à 14:58
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.
stgcici
Messages postés
51
Date d'inscription
mardi 29 octobre 2013
Statut
Membre
Dernière intervention
18 février 2014
1
20 déc. 2013 à 15:38
20 déc. 2013 à 15:38
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.
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
20 déc. 2013 à 16:36
20 déc. 2013 à 16:36
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
stgcici
Messages postés
51
Date d'inscription
mardi 29 octobre 2013
Statut
Membre
Dernière intervention
18 février 2014
1
20 déc. 2013 à 16:56
20 déc. 2013 à 16:56
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.
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
Modifié par Pitet le 20/12/2013 à 17:17
Modifié par Pitet le 20/12/2013 à 17:17
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().
20 déc. 2013 à 15:28
Merci pour ta réponse.
je vais de se pas apporté les modifs voir ce que sa donne.
20 déc. 2013 à 15:30
20 déc. 2013 à 15:44
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.