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.** { *; }
My problem was that I had the @POST
annotation, but forgot the @Body
annotation for the parameter.
Addition to Destil's answer
Make sure the parameters
you pass to the retrofit interface methods(i.e callbacks, headers, body )
are only belongs to retrofit package
. e.g. Not custom callbacks that you want on your own.
Also make sure you add @Query
or @Field
for all the parameters , depending on whether you issuing GET/POST.
eg:
@GET("/api/Books/GetAll")
void GetRecentBooks(@Query int Offset, Callback<List<Book>> cb);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With