2015-03-11 5 views
5

Ho cercato soluzioni su come ottenere i cookie con il loro nome e tutte le soluzioni indicano l'utilizzo delle istruzioni for-loops e if. Vedi il codice qui sotto.Java: esiste un modo semplice per ottenere un cookie per nome?

for (Cookie cookie : cookies) { 
    if (cookie.getName().equals("<NAME>")) { 
     // do something here 
    } 
    if (cookie.getName().equals("<ANOTHER_NAME>")) { 
     // do something here 
    } 
    // and so on... 
} 

Esiste un modo più semplice per ottenere il valore con il loro nome, senza dover fare i loop e se di?

Ho bisogno di fare alcune "certe" elaborazioni per determinati cookie che vorrei recuperare Plus, non voglio attraversare tutti i cookie! Potrebbero esserci 10 o più e tutto ciò di cui ho bisogno è solo tre o qualcosa.

+0

Inserire i cookie in una 'Mappa ' (o 'Multimap'). –

+0

Oh, potrebbe funzionare davvero: D Proverò subito! Grazie: D –

+2

Nota per gli elettori: non downvotare semplicemente perché si tratta di una domanda a livello principiante. Questo è correttamente formattato e dichiarato chiaramente con il richiedente che mostra un esempio del loro tentativo. –

risposta

0

La logica (come suggerito da Matt Ball nelle commenti) sarebbe:

// ... 
Map<String, Cookie> cookieMap = new HashMap<>(); 
for (Cookie cookie : cookies) { 
    cookieMap.put(cookie.getName(), cookie); 
} 

Cookie firstRequiredCookie = cookieMap.get("<NAME>"); 
// do something with firstRequiredCookie 
Cookie nextRequiredCookie = cookieMap.get("<ANOTHER_NAME>"); 
// do something with nextRequiredCookie 
// ... 
+0

Grazie a tutti! : D Dimentica la mia domanda di follow-up, ho capito ora: D GRAZIE! Avrei potuto revocare la risposta, ma il mio rappresentante non mi ha ancora permesso di votare. –

0

nomi cookie non sono unici, in modo da utilizzare un nome di cookie come una chiave mappa non è un approccio ideale.

Poiché i nomi dei cookie non sono univoci, è probabilmente il motivo per cui questo Java API non è mai stato aggiornato per fornire un metodo getCookieByName().

Problemi correlati