2012-10-04 30 views
22

Es una pregunta muy básica. Pero no puedo encontrar una respuesta en la documentación de Java y tampoco puedo probarla, ya que no sé si existe o no ese método.Crear URL a partir de una cadena

podría recibir una cadena de URL que podría ser

http://www.example1.com

o

http://www.example1.com/

y luego voy a obtener la ruta de recursos que podría comenzar con /api/v1/status.xml o Sería como api/v1/status.xml

Estaba viendoLa clasey yo podemos manejar la primera parte, es decir, recuperar el hostURL para convertirlo en una solicitud HTTPS o HTTP. El problema es agregar la ruta del recurso. o bien tengo que verificarlo manualmente si la primera letra es / o no. Me preguntaba si esta funcionalidad ya está en alguna clase o no.

+0

Es esto similar a ¿Que estas buscando? Podría ser útil: https://stackoverflow.com/questions/1861620/is-there-a-java-package-to-handle-building-urls – MikeB

Respuesta

35
URL url = new URL(yourUrl, "/api/v1/status.xml"); 

De acuerdo con los javadocs este constructor simplemente añade lo recursos hasta el final de su dominio, por lo que se quiere crear 2 URLs:

URL domain = new URL("http://example.com"); 
URL url = new URL(domain + "/files/resource.xml"); 

Fuentes: http://docs.oracle.com/javase/6/docs/api/java/net/URL.html

+1

¿Qué sucede si 'URL url = new URL (domain +" files/resource .xml ");'? MalformedURL? ... ¿y si 'domain = www.example.com /' y 'new URL (domain +" /files/resources.xml ");' ... de nuevo malformado –

+0

He visto muchas veces donde una aplicación primero verifica la cadena de URL para 'if (domain.endsWith ("/")) {domain = domain.substring (0, domain.length() - 1);}' Para todos los demás problemas, capture MalformedURLException y maneje desde allí. –

+0

Obtengo la excepción MalformedURLException solo porque el protocolo no es "http". OMG/facepalm –

Cuestiones relacionadas