2011-05-06 8 views
17

Esta pregunta casi se ha formulado con anterioridad, pero lo pido de todos modos porque no he podido encontrar una respuesta.Clase estándar de Java para la manipulación común de URL/URI

Generalmente, ¿existe alguna clase de utilidad que asista en las manipulaciones de cadenas comunes asociadas con URL/URI?

Estoy pensando algo así como Java SE URL Clase, pero tal vez un poco más robusto. Estoy buscando algo que le permitirá hacer las cosas simples, como:

  • obtener una lista de parámetros de cadena de consulta
  • método
  • Un "addParameter" para agregar un parámetro de cadena de consulta , y que va a tomar cuidado de la adición de "&", "?", y "=" cuando sea necesario
  • Además, la codificación valores de los parámetros serían ideales ...

me dejó sabe, gracias!

+1

Buena pregunta. No pude encontrar uno bueno, así que rodé el mío. Me gustaría ver las sugerencias aquí. – Joel

+2

Es una laguna muy conocida y muy discutida de que no hay nada en Java SE que pueda hacer algo interesante con las cadenas de consulta. Para todo lo demás, está java.net.URI, que sugeriría preferir a java.net.URL, porque, entre otras cosas, tiene una implementación de igual a igual(). –

+0

echa un vistazo a Galimatias - una biblioteca de análisis y normalización de URL escrita en Java https: // github.com/smola/galimatias –

Respuesta

8

No hay realmente (por extraño que parezca) ningún estándar que lo haga todo. Hay algunos fragmentos y piezas, generalmente enterrados en varios paquetes util paquetes:

He usado http://java.net/projects/urlencodedquerystring/pages/Home con un efecto decente (para la extracción de parámetros).

Atlassian's JIRA tiene http://docs.atlassian.com/jira/4.2/index.html?com/atlassian/jira/util/UrlBuilder.html, que en realidad he extraído de la jarra y he usado.

En Android, http://developer.android.com/reference/android/net/Uri.Builder.html es un generador de Uri que funciona bastante bien en la construcción de una url con facilidad.

Y, por último, en un caso clásico de historia que se repite: A good library to do URL Query String manipulation in Java.

Realmente me gustaría arrancar la clase android.net.Uri.Builder y vincular eso con la clase urlencodedquerystring y luego llevar esto con usted, pero esto parece ser un buen candidato para un paquete de Apache commons.

+0

Impresionante, gracias por la gran respuesta! También me encontré con un código similar en varias bibliotecas propietarias antes, que fue lo que provocó esta pregunta. ¡Creo que echaré una ojeada a tu sugerencia! Dejaré esta pregunta abierta por un tiempo más para ver si recibo respuestas adicionales. – JasonStoltz

+0

Aceptando esta respuesta. Además, el comentario de Tom Anderson sobre la pregunta principal también fue útil. – JasonStoltz

+0

Aquí hay otra pregunta que tiene una sugerencia para crear una cadena de consulta codificada en la url de un mapa. http://stackoverflow.com/questions/2809877/how-to-convert-map-to-url-query-string/2810102#2810434 – JasonStoltz

0

esto no responde a la pregunta de OP directamente (es decir no es un genérico, todo alrededor de la biblioteca para la manipulación de URL), pero: si se va a utilizar la primavera de todos modos, que también podría considerar la ServletUriComponentsBuilder y UriComponentsBuilder clases (ver here y here para javadocs).

Creo que se incluyen con la dependencia spring-web. En mi humilde opinión, estos ofrecen bastantes métodos convenientes de utilidad para trabajar con URI, URL y parámetros de consulta.

Cuestiones relacionadas