如何使用Retrofit使用querystring params发出请求?

时间:2016-01-12 00:38:44

标签: android retrofit retrofit2

我有一个api方法,其网址如下:http://api.website.com/app.php?action=SOMETHING&id=SOME_NUMBER

我在每个请求中唯一更改的部分是id querystring,替换了SOME_NUMBER(例如:http://api.website.com/app.php?action=SOMETHING&id=556)。

我正在创建这样的服务:

public interface MyService {
    @GET("acao=SOMETHING")
    Call<ComicBookResponse> get(@Query("id") String id);
}

我使用工厂类来返回服务的实例:

public static MyService myService() {
        return new Retrofit.Builder()
                .baseUrl("http://api.website.com/app.php?")
                .addConverterFactory(GsonConverterFactory.create())
                .build()
                .create(MyService.class);
    }

但是,请求似乎忽略了@Query参数。这有什么问题?

1 个答案:

答案 0 :(得分:0)

public static MyService myService() {
    return new Retrofit.Builder()
            .baseUrl("http://api.website.com")
            .addConverterFactory(GsonConverterFactory.create())
            .build()
            .create(MyService.class);
}

public interface MyService {
    @GET("/app.php")
    Call<ComicBookResponse> get( @Query("action") String action, @Query("id") String id );
}

现在它将形成如下网址:

http://api.website.com/app.php?action=SOMETHING&id=556 // if action=SOMETHING and id=556