Qualcuno sa di una buona libreria Scala o Java in grado di risolvere problemi comuni in URI non validi, come contenere caratteri che dovrebbero essere escapati ma non lo sono?Scala o libreria Java per correggere gli URI errati
risposta
Ho testato alcune librerie, inclusa l'ora legacy URIUtil di HTTPClient senza aver trovato alcuna soluzione valida. In genere, ne ho avuto abbastanza successo con questo tipo di costrutto java.net.URI però:
/**
* Tries to construct an url by breaking it up into its smallest elements
* and encode each component individually using the full URI constructor:
*
* foo://example.com:8042/over/there?name=ferret#nose
* \_/ \______________/\_________/ \_________/ \__/
* | | | | |
* scheme authority path query fragment
*/
public URI parseUrl(String s) throws Exception {
URL u = new URL(s);
return new URI(
u.getProtocol(),
u.getAuthority(),
u.getPath(),
u.getQuery(),
u.getRef());
}
che può essere usato combinazione con la seguente routine. Decodifica ripetutamente uno URL
fino a quando la stringa decodificata non cambia, il che può essere utile ad esempio, con la doppia codifica . Si noti, per mantenerlo semplice, questo campione non dispone di alcuna failsafe ecc
public String urlDecode(String url, String encoding) throws UnsupportedEncodingException, IllegalArgumentException {
String result = URLDecoder.decode(url, encoding);
return result.equals(url) ? result : urlDecode(result, encoding);
}
Vorrei consigliare di non usare java.net.URLEncoder
per URI codifica per cento. Nonostante il nome, non è grande per la codifica degli URL in quanto non seguono lo standard rfc3986 e codifica nel formato application/x-www-form-urlencoded
MIME (read more here)
Per la codifica URI a Scala mi sento di raccomandare la classe Uri da spray-http invece. scala-uri è un'alternativa (disclaimer: io sono l'autore).
- 1. FinTS o libreria HBCI per Java
- 2. Come correggere i domini degli indirizzi di posta elettronica errati?
- 3. Java o Scala per nuovi progetti greenfield?
- 4. Libreria ePub per java o android
- 5. Esiste una buona libreria di crittografia GnuPG per Java/Scala?
- 6. Esiste una libreria PHP per correggere la grammatica?
- 7. Modo rapido per correggere gli avvisi XCode
- 8. Ereditato alcuni generici Java errati
- 9. Versione parallela di Files.walkFileTree (java o scala)
- 10. Approccio per correggere NoClassDefFoundError?
- 11. Libreria algebra lineare per Scala?
- 12. consigliato libreria Scala io
- 13. Per utilizzare o non utilizzare Scala per nuovi progetti Java?
- 14. Libreria Beep per Java?
- 15. Mappare gli URI di musicbrainz negli URI di Spotify
- 16. Libreria BSON per java?
- 17. Libreria UPnP per Java
- 18. Libreria matematica per Java
- 19. Logger per libreria Java
- 20. Libreria WebP per java?
- 21. Scala per tutti gli esempi?
- 22. Supporto Scala Vector Libreria macchine
- 23. Base 64 codifica con Scala o Java
- 24. Come "unire" due URI in Java?
- 25. processori XML multi-mode per Java e/o Scala
- 26. Libreria di serializzazione binaria Scala
- 27. C'è una buona libreria di riflessioni disponibile per Scala?
- 28. utilizzando dbpedia spotlight in java o scala
- 29. Esiste una libreria simile a lxml o nokogiri per Java?
- 30. Fonti della libreria non trovate per scala-libreria in Intellij