6
votes

Impossible d'obtenir de la valeur de Cookie en Java. La valeur contient des virgules.

J'ai un problème avec la valeur de Cookie contenant des virgules. Il retourne la chaîne non complète mais la chaîne coupée à la première virgule. Par exemple: xxx

et xxx

Qu'est-ce que je fais mal.


3 commentaires

Avez-vous finalement résolu votre problème? Avez-vous déposé un bogue-rapport?


Non, n'avez aucune solution pour cela. J'ai rempli un bug pour Google Analytics (GDATA-Problèmes, ne pouvait pas trouver de meilleur endroit).


Avez-vous compris une façon d'appliquer Java à lire la version 1 (RFC 2109)?


3 Réponses :


2
votes

La virgule fait partie de la définition de la valeur HTTP-HIDELER, donc virgules d'URL-Encode dans votre valeur de cookie forte>.

URLEncoder.encode(cookieValue);


4 commentaires

Comme je l'ai écrit ci-dessus: je ne fais pas de cookie. J'essaie seulement d'analyser le cookie __umtv de Google.


@Mynthon - Donnez-moi le lien vers votre site. Je ne crois pas que le cookie __utm a des commentaires


Je ne peux pas montrer car il n'est pas en phase de production, mais j'ai préparé la démo sur mon site Web: mynthon.net/_lab/ gacookie


curieux..tenable curieux. Je conseillerais de déposer un rapport de bogue à ce sujet.



5
votes

Jetez un coup d'œil au Documentation Cookie < / a>. Il dit:

Cette classe prend en charge la version 0 (par Netscape) et version 1 (par RFC 2109) Spécifications du cookie. Par Par défaut, les cookies sont créés en utilisant Version 0 pour assurer le meilleur Interopérabilité.

Et si vous voyez le SETVALUE Méthode Vous trouverez ceci

Avec la version 0 Cookies, les valeurs ne doivent pas contenir de l'espace blanc, des supports, des parenthèses, des signes égaux, des virgules, des guillemets, des barres obliques, des points d'interrogation, des signes, des points de vue et des points-virgules. Les valeurs vides peuvent ne pas se comporter de la même manière sur tous les navigateurs.

Edit: Il suffit de lire la chose de Google. Essayez peut-être de définir la version à 1 et voyez comment cela fonctionne.


0 commentaires

0
votes

Êtes-vous sûr de votre choix pour stocker un ensemble dans le cookie? Les cookies IMHO ne doivent pas être utilisés pour stocker des données en dehors des identifiants. Le stockage des données doit être effectué sur le côté serveur autant que possible.


2 commentaires

Google utilise des virgules dans ses cookies "__utmv" et je dois analyser Google Cookie.


Ah. D'accord. Alors bien sûr, vous devez rester avec la réponse de Lombo ;-)