Picasso no funciona si url contiene espacio

Estoy desarrollando una aplicación para Android en la que estoy recuperando una imagen de un servidor y la muestro en una vista de imagen usando Picasso. Algunas URL de imagen no funcionan aunque puedo probarlas con éxito en un navegador.

Por ejemplo, esta URL funciona correctamente:

http://www.tonightfootballreport.com/\Filebucket\Picture\image\png\20160730011032_BPL.png 

Pero éste falla:

 http://www.tonightfootballreport.com/\Filebucket\Picture\image\png\20160807025619_Serie A.png 

La diferencia parece ser que la URL que falla contiene un espacio. ¿Qué debo hacer para que esto funcione?

 String temp = "http://www.tonightfootballreport.com/\Filebucket\Picture\image\png\20160807025619_Serie A.png"; temp = temp.replaceAll(" ", "%20"); URL sourceUrl = new URL(temp); 

Codificar la URL,

 String url = "http://www.tonightfootballreport.com/Filebucket/Picture/image/png/20160807025619_Serie A.png"; String encodedUrl = URLEncoder.encode(url, "utf-8"); 

EDIT # 1:

El problema con el método anterior como @ Wai Yan Hein, señaló es que codificar todos los caracteres en la url, incluyendo el protocolo.

El código siguiente resuelve ese problema,

 String urlStr = "http://www.tonightfootballreport.com/Filebucket/Picture/image/png/20160807025619_Serie A.png"; 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(); 

Editar # 2

Solución alternativa utilizando Uri.parse ,

 String urlStr = "http://www.tonightfootballreport.com/Filebucket/Picture/image/png/20160807025619_Serie A.png"; String url = Uri.parse(urlStr) .buildUpon() .build() .toString(); 

Compruebe si la URL es válida y si no intenta codificarla,

 if(!Patterns.WEB_URL.matcher(url).matches()){ URLEncoder.encode(url, "utf-8"); //Now load via Picasso } else{ //Proceed with loading via picasso } 
  • Android: Ir al URL de HTTP en el botón de clic
  • Java, android, resolver un url, obtener redireccionado uri
  • La aplicación Android de Alibaba causa bloqueo cuando intenta abrir una URL
  • ¿Cómo puedo obtener una vista previa de una página URL en Android?
  • Obtener el URI de una imagen almacenada en drawable
  • Aplicación de Android: ¿Cómo leer obtener parámetros de un esquema de url personalizado?
  • Cómo obtener el url de la página actual desde la vista web en android
  • Cómo obtener la URL actual en un navegador de Android
  • No puede abrir la URL de twitter en la vista web de android
  • Aplicación android se estrella en el cambio de url de vista web
  • ¿Por qué WebView no puede abrir algunas URL locales (Android)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.