首页 > 解决方案 > Android Retrofit 传递参数

问题描述

我正在使用改造通过帖子 ID 获取单个帖子,在传递帖子 ID 时出现错误。我尝试了几种方法,但没有一种方法返回了正确的响应。

我已经试过了:

@GET("?rest_route=/wp/v2/posts/")
    Call<SinglePost> getSinglePost(@FieldMap Map<String, String> map); 

@GET("?rest_route=/wp/v2/posts/")
    Call<SinglePost> getSinglePost(@QueryMap Map<String, String> map);

@GET("?rest_route=/wp/v2/posts/")
    Call<SinglePost> getSinglePost(@QueryMap<String, String> map);

@GET("?rest_route=/wp/v2/posts/{postid}")
    Call<SinglePost> getSinglePost(@Path("postid")int postid);

@GET("?rest_route=/wp/v2/posts/{postid}")
    Call<SinglePost> getSinglePost(@Path("postid")int postid);

@GET("?rest_route=/wp/v2/posts/{postid}")
    Call<SinglePost> getSinglePost(@Field("postid") int postid);

这是原始链接 https://www.mywordpress.com/?rest_route=/wp/v2/posts/3561

标签: androidapiretrofit2

解决方案


像这样声明您的 API 调用

@GET("/")
Call<SinglePost> getSinglePost(@QueryMap Map<String, String> map);

制作参数映射并在初始化 API 调用时传递它

HashMap<String, String> map = new HashMap<>();
map.put("rest_route", "/wp/v2/posts/3561");
Call<SinglePost> call = apiService.getSinglePost(map);

推荐阅读