2009-09-29 17 views
37

Qualcuno sa di una grande libreria in java per analizzare le stringhe di user-agent? Ne abbiamo scritto uno personalizzato, ma questo sembra un problema comune a molte persone. Immagino che ci sia una buona libreria disponibile da qualche parte.Ricerca di un parser di stringa User Agent Java

Ad esempio, la stringa user agent ...

"/ 5.0 Mozilla (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532,0 (KHTML, come Gecko) Chrome/Safari 3.0.195.21 /532.0 "

... annuncia in modo criptico l'arrivo di un PC Windows Vista utilizzando Chrome sul nostro sito.

Ho visto librerie in pitone e rubino. Qualcosa in Java là fuori?

risposta

4

Per quanto ne so (e perché non dovrei, è una delle società di servizi con cui ho lavorato con i suoi prodotti), rilevare agenti utente una volta eseguito correttamente è in realtà un buon affare in sé.

Esistono diversi database gratuiti come WURFL contenenti alcuni modelli di identificazione rudimentale per gli agenti utente, ma quelli si concentrano principalmente su telefoni cellulari ad esempio, quindi alla fine potrebbe essere necessario continuare a utilizzare quello che hai creato e aggiungere semplicemente la capacità per importare/esportare in vari formati correlati relativi allo stato corrente dei metadati di identificazione degli user agent.

Se non hai intenzione di allontanarti dal mondo desktop/PC, non avrai molto di cui preoccuparti anche se ci sono solo quattro principali motori di layout là fuori, naturalmente con un set di versioni con funzionalità diverse. I quattro grandi sono quelli in Trident in IE, Mozilla's Gecko, KDE's WebKit (almeno in Safari e Chrome) e Opera's Presto.

15

Eppure provare una nuova libreria che viene aggiornato mensilmente e disponibile nel repository centrale: http://uadetector.sourceforge.net/

E 'un altro wrapper per user-agent-string.info, ma con una molto più solida e testati implementazione rispetto agli altri.

Sto lavorando su una API 1.0 stabile che voglio rilasciare alla fine di quest'anno. Dopo il rilascio dell'API 1.0 non è necessario ricompilare nulla. Si passa a uadetector-resources.jar solo nella cartella lib delle applicazioni. La funzione "aggiornato mensilmente" significa, se si desidera un file di "dati UAS" testato per l'integrazione, per il quale si ha la garanzia che venga eseguito con il core definito, rispetto a ciò che si adatta alle proprie esigenze. Ma se non si è interessati all'aggiornamento di un JAR (testato da me), è possibile utilizzare OnlineUserAgentStringParser con il rischio che l'implementazione non sia adatta per l'esecuzione con l'XML scaricato automaticamente. Non sono interessato a rilasciare più bundle 'uadetector-core', se necessario, specialmente quando viene rilasciata l'API nella versione 1.0.

Un'altra soluzione per un client potrebbe essere che mantiene i "dati UAS" per conto proprio, quando collabora con OnlineUserAgentStringParser e personalizza il file delle proprietà per impostare l'URL corretto.

+0

Questo sembra essere un altro wrapper attorno ai dati [user-agent-string.info] (http://user-agent-string.info). Come si confronta con [la propria libreria] (http://user-agent-string.info/download/UASparser-for-JAVA)? Dal tuo gravatar immagino che sia il tuo progetto? Non sono sicuro che "aggiornato mensilmente" sia una caratteristica, però - ti aspetti che i tuoi clienti possano ricompilare e ripubblicare le loro applicazioni mensilmente? – Rup

+0

@Rup Grazie per il vostro feedback! Spero che la mia spiegazione ti fornisca ulteriori informazioni. – before