Quiero obtener los RSS de código a partir de una URL con Retrofit y si me enter url staticly en el conseguir la anotación que todo está bien, pero con la dinámica de la url me sale un error.

Mi interfaz de servicio :

public interface AllNewsService {
@GET("/fa/rss/{url}")
void getRss( @Path("url") String nGroup ,  Callback<AllNewsRss> callback);}

Y llamadas getRss método :

DataGetter dg = new DataGetter();
    dg.get().getRss("allnews" ,new Callback<AllNewsRss>() {
        @Override
        public void success(AllNewsRss allNewsRss, Response response) {
            Log.d(TAG,"success");
        }

        @Override
        public void failure(RetrofitError error) {
            Log.d("*********",error.toString());
        }

Me sale el siguiente error:

retrofit.RetrofitError: AllNewsService.getRss: No Retrofit annotation found. (parameter #1)

Nota: he añadido debajo de la línea de proguard.cfg pero no funcionó

-keep class retrofit.** { *; }
  • Usted debe verificar su código de solicitud, todos los retrofit de solicitud de las anotaciones deben estar allí y bien formateado. Consulte más aquí: readyandroid.wordpress.com/…
InformationsquelleAutor mk72 | 2015-02-06

9 Comentarios

  1. 40

    Además de Destil la respuesta de

    Asegúrese de que el parameters de pasar a la retrofit interface methods(i.e callbacks, headers, body ) son sólo pertenece a retrofit package. por ejemplo, No personalizada devoluciones de llamada que usted desee en su propio.

    • asegúrese de que pertenece a la derecho retrofit paquete demasiado. En mi caso accidentalmente había importado una anotación de retrofit en lugar de retrofit2
  2. 183

    Mi problema era que tenía el @POST anotación, pero se olvidó de la @Body anotación para el parámetro.

    • Por desgracia esto no va a funcionar con /[email protected]ón, ya que obtendrá un error: actualización.RetrofitError: /@parámetros del Cuerpo no puede ser utilizado con el formulario o multi-parte de la codificación. (parámetro #1)
    • ¿qué acerca de @GET anotación..?? tengo el mismo problema..
    • dios eres un ahorro de tiempo. gracias tio. debido al rápido desarrollo de me olvidé de que la anotación demasiado.
    • También un problema con @PONER
  3. 11

    También, asegúrese de agregar @Query o @Field para todos los parámetros , dependiendo de si la emisión de GET/POST.

    por ejemplo:

    @GET("/api/Books/GetAll")
    void GetRecentBooks(@Query int Offset, Callback<List<Book>> cb);
  4. 2

    Probablemente olvidó activar el adaptador en primer lugar, como se mencionó en la reconversión de la api:

    RestAdapter restAdapter = new RestAdapter.Builder()
    .setEndpoint("https://api.github.com")
    .build();
    GitHubService service = restAdapter.create(GitHubService.class);

    http://square.github.io/retrofit/

  5. 2

    Por favor, compruebe la Path clase que usted está utilizando y asegúrese de que el paquete es retrofit2.http.Path en lugar de org.simpleframework.xml.Path.
    Es una Reconversión de anotación de error.

  6. 2

    Mi problema era que yo estoy usando Kotlin corrutinas y el uso de ‘suspender’ en la Reconversión método GET. Quite y todo funciona bien.

    • Para ser más precisos, se debe eliminar la «suspensión» de la palabra clave. Gracias.
    • no funciona me dice que no se pudo crear el adaptador!
  7. 1

    En mi caso, se me olvidó quitar parámetro de devolución de llamada para la llamada de servicio cuando puedo empezar a utilizar el retrofit 2. Asegúrese de no hacer el tonto error.

Dejar respuesta

Please enter your comment!
Please enter your name here