La valeur des mots-clés headers
doit être une chaîne ou un tampon ?
Si les mots-clés dnt
et upgrade-insecure-requests
value sont string ou buffer , c'est vrai, mais la valeur est int, c'est faux. Pourquoi ?
Droit:
'dnt': '1',
'upgrade-insecure-requests': '1',
Tort:
'dnt': 1,
'upgrade-insecure-requests': 1,
Pourquoi?
@wut0n9 Ce changement de comportement n'est pas dans la v2.10.0, c'est dans la branche master actuelle.
Cependant, c'est un vrai bug : #3366 a régressé cela. @nateprewitt , êtes-vous intéressé à essayer de mettre à jour avec un correctif pour cela ?
Les en-têtes auraient toujours dû être des chaînes. Je ne pense pas qu'il s'agisse d'une régression significative, voire d'une régression. Nous avons toujours documenté que les valeurs d'en-tête doivent être des chaînes.
Indépendamment de ce que nous avons documenté, cela fonctionnait et maintenant cela ne fonctionne plus. Nous allons casser un _lot_ de code si nous ne le modifions pas.
Ouais, je vais y arriver @Lukasa.
Voir aussi https://github.com/kennethreitz/requests/issues/865 et https://github.com/kennethreitz/requests/pull/866
Je ne sais pas à quel point "beaucoup" est réellement dans ce cas.
@ sigmavirus24 est lié aux avis antérieurs pertinents, qui suggèrent qu'en fait, nous n'autorisons pas les valeurs d'en-tête non-chaîne. Cela signifie donc que ce n'est pas un bug : c'est nous qui avons fait une révision qui rentre dans le cadre de la définition de l'API.
@Lukasa c'est vrai, je suis franchement surpris que cela ne se soit pas cassé plus tôt. La signification de non-bytes/str en tant que valeur d'en-tête n'est pas définie en ce qui me concerne.
Commentaire le plus utile
Indépendamment de ce que nous avons documenté, cela fonctionnait et maintenant cela ne fonctionne plus. Nous allons casser un _lot_ de code si nous ne le modifions pas.