Retrofit 2 elimina los caracteres después de hostname de url de base

Estoy utilizando Retrofit para acceder a una API RESTful. La url de base es:

Http://api.example.com/service

Este es el código para la interfaz:

public interface ExampleService { @Headers("Accept: Application/JSON") @POST("/album/featured-albums") Call<List<Album>> listFeaturedAlbums(); } 

Y esta es la forma en que enviar solicitud y recibir la respuesta:

 new AsyncTask<Void, Void, Response<List<Album>>>() { @Override protected Response<List<Album>> doInBackground(Void... params) { Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://api.example.com/service") .addConverterFactory(GsonConverterFactory.create()) .build(); ExampleService service = retrofit.create(ExampleService.class); try { return service.listFeaturedAlbums().execute(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Response<List<Album>> listCall) { Log.v("Example", listCall.raw().toString()); } }.execute(); 

El registro que recibo es lo extraño:

V / Ejemplo: Respuesta {protocolo = http / 1.1, código = 404, mensaje = no encontrado, url = http://api.example.com/album/featured-albums }

¿Que está pasando aqui?

One Solution collect form web for “Retrofit 2 elimina los caracteres después de hostname de url de base”

Retrofit 2 utiliza las mismas reglas que una <a href=""> .

La dirección principal / en su URL relativa indica a Retrofit que es una ruta absoluta en el host. He aquí un ejemplo de una presentación que he presentado:

Introduzca aquí la descripción de la imagen

Anote la URL incorrecta que se resolvió en la parte inferior.

Al eliminar el / principal, la URL se vuelve relativa y se combinará con los segmentos de ruta que forman parte de la URL de base. Corregido en la presentación, la URL final es correcta:

Introduzca aquí la descripción de la imagen

En su ejemplo, no tiene una URL de seguimiento / en la URL base. Es probable que desee añadir uno para que las rutas relativas se resuelven en la parte superior de ella en lugar de como un hermano de la misma.

  • Javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Ancla de confianza para la ruta de certificación no encontrada
  • Retrofit getBodyAs () no puede analizar el error del servidor
  • Retrofit y caracteres Slash en PATH
  • Retrofit @GET - cómo mostrar la cadena de solicitud?
  • Fuera de memoria usando Retrofit 2 para descargar un archivo
  • Causado por: retrofit.RetrofitError: método POST debe tener un cuerpo de solicitud
  • Retrofit - Cambiar BaseUrl
  • ¿Cómo pasar los parámetros de Map <String, String> o el objeto a la petición POST mediante Retrofit?
  • ¿Cómo puedo convertir un cuerpo de respuesta exitoso en un tipo específico usando retrofit?
  • Uso de URLs absolutas con Retrofit
  • Reemplazos de reemplazo: reemplazo en toda la ruta (incluyendo /)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.