Clark (eedomus team) a écrit:Bonjour,
Un utilisateur nous a signalé ce fil dans un ticket.
Il n'y a pas de changement dans le format de l'API côté eedomus. Le serveur Apache/software est différent entre la box et le cloud.
L'API locale eedomus répond avec le header "Transfer-Encoding: chunked" en HTTP 1.1 (et répond sans ce champ en HTTP 1.0), ce qui est une réponse normale.
L'API cloud eedomus répond différemment (avec le champ "Content-Length").
Nodered est assez tatillon sur les formats. Il n'accepte visiblement pas ce header HTTP "chunked" qui semble pourtant bien dans la norme HTTP1.1. Il ne permet pas non plus de choisir la version HTTP (d'anciennes versions de nodered le permettaient a priori).
Nous n'avons pas de contournement immédiat (si ce n'est un proxy sur l'OS de nodered).
Nous le noterons sur ce fil si nous trouvons un contournement de notre côté.
Bien cordialement
Bien, cette réponse reste inadmissible.
Si le fait de modifier l'entête pour corriger le caractère indésirable qui se trouve dans le header html.
Il est tout à fait possible pour vous de corriger ce soucis.et de monter une maquette Node Red pour tester, ne vous soit pas possible. J'ai un doute.
Par ailleurs, je trouve étonnant de ne pas trouver dans l'entête :
- Code : Tout sélectionner
Content-Type: application/json
Ce n'est pas à l'utilisateur final de régler ce type de soucis.
Lorsque que vous affirmer que Node Red n'accepte pas l'entête chunck, c'est faux! Après correction via le proxy, l'entête est toujours présente mais nettoyée.
Copie de l'entête reçue en locale:
- Code : Tout sélectionner
Date: Tue, 31 Dec 2024 07:20:25 GMT
Server: Apache
Access-Control-Allow-Origin: *
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html
Vary: Accept-Encoding
Transfer-Encoding: chunked
et ho miracle, ça fonctionne même avec chuncked!
Sans proxy, il indique :
- Code : Tout sélectionner
msg : error
"RequestError: Parse Error: Invalid character in chunk size"
Donc
Invalid character vient bien du fait que vous envoyez un caractère invalide provenant de la box.
Je rajouterais également ceci.
Côté Node Red, j'ai utilisé une autre librairie pour parser le HTML (axio) et il me retourne exactement la même erreur.