bokub / linky

🔌 CLI tool to retrieve Linky smart meters data
GNU General Public License v3.0
220 stars 21 forks source link

requête : erreur 500 sans NodeJS #42

Closed WillLLS closed 1 year ago

WillLLS commented 1 year ago

Bonjour :D

merci pour ce travail, ça fonctionne très bien avec NodeJS et le rendu terminal est génial :) J'essaye de reproduire cela en C pour de l'embarqué et je me heurt à un soucis...

J'ai reproduit la construction de l'url en suivant le code pour obtenir cela : "https://gw.prd.api.enedis.fr/daily_consumption?start=2022-12-01&end=2022-12-03&usage_point_id=XXMonSuperUsagePointXX" en ajoutant le headers : headers = { "Authorization": "Bearer XXMonSuperTokenXX", "Content-Type": "application/x-www-form-urlencoded", "Accept": "application/json" }

Mais la réponse est constamment une erreur 500. En testant avec nodeJS (même tokens) tout semble fonctionner.

Qu'ai-je oublié ?

Merci d'avance :)

PS:

bokub commented 1 year ago

Hello WillLLS,

Je ne vois pas trop comment je pourrais t'aider, si ton code en Node.js renvoie la consommation mais que le code C renvoie une 500, c'est probablement qu'il y a une erreur dans ton code C :smile:

As-tu regardé le contenu de la réponse à ton erreur 500 ? Peut-être que cela pourrait t'aider à débugger

Good luck :crossed_fingers:

WillLLS commented 1 year ago

Merci pour cette réponse rapide :)

En passant par postman : image

Le résultat est similaire en passant par python. Le header de la réponse est le suivant : {'Mime-Type': 'text/html', 'Connection': 'Keep-Alive', 'Content-Length': '0'}

La requête est-elle correcte ? https://gw.prd.api.enedis.fr/daily_consumption?start=2022-12-01&end=2022-12-03&usage_point_id=0... headers = { "Authorization": "Bearer D36yx1104CpWa3ycEBuJdeeo5SdtJSs6xnaLj92FO1q42EGDRfKYie", "Content-Type": "application/x-www-form-urlencoded", "Accept": "application/json" }

Y-a-t'il un encodage particulier du token ?

bokub commented 1 year ago

Oui la requête a l'air correcte à premiere vue, mais encore une fois ce serait bien que tu regardes le Body de la réponse, tu y trouveras probablement plus de détails