No Retrofit annotation found. (parameter #1)

mk72 picture mk72 · Feb 6, 2015 · Viewed 61.4k times · Source

I want get RSS code from a URL with Retrofit and if I enter url staticly in the get annotation everything is OK but with dynamic url I get an error.

My interface service :

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

And calling getRss method :

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());
        }

I get the following error:

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

Note: I added below line to proguard.cfg but it didn't work

-keep class retrofit.** { *; }

Answer

David V&#225;vra picture David Vávra · Mar 12, 2015

My problem was that I had the @POST annotation, but forgot the @Body annotation for the parameter.