voy a añadir una sugerencia aquí. Puede hacer esto, lo que evita tener que obtener bibliotecas externas.
seguirlo:
String urlStr = "http://abc.dev.domain.com/0007AC/ads/800x480 15sec h.264.mp4";
URL url = new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
url = uri.toURL();
Se puede ver que en esta URL en particular, necesito tener esos espacios codificados de modo que pueda usarlo para una solicitud.
Esto aprovecha un par de funciones disponibles para usted en las clases de Android. En primer lugar, la clase de URL puede dividir una url en sus componentes adecuados, por lo que no es necesario que realice ningún trabajo de búsqueda/reemplazo de cadenas. En segundo lugar, este enfoque aprovecha la característica de clase URI de escapes adecuados de componentes cuando se construye un URI a través de componentes en lugar de a partir de una sola cadena.
La belleza de este enfoque es que puede tomar cualquier cadena de URL válida y hacer que funcione sin necesidad de ningún conocimiento especial de la misma.
¿Qué pasa si la URL completa no es confiable? ¿Debería codificar todo excepto el protocolo? Esperaba un método de conveniencia para hacer esto. – hpique
Entonces es solo una URL rota. La idea es evitar que la parte de la consulta rompa la url. – yanchenko
@hgpc: mira la sección 3 de RFC3986 (http://tools.ietf.org/html/rfc3986#section-3). Le dice cómo codificar las diversas partes de un URI. Desafortunadamente, cada parte del URI (host, ruta, consulta, etc.) tiene reglas de codificación ligeramente diferentes. –