【问题标题】:Add query parameter to Retrofit get in Android Studio将查询参数添加到 Android Studio 中的 Retrofit get
【发布时间】:2018-09-07 20:54:35
【问题描述】:

我正在尝试使用改造从我的 API 中获取记录,当我执行此类操作时它工作正常。

公共接口材料API {

@GET("/mlearningServices/Course")
public void getMaterials(Callback<List<materialClass>> response); }   public void getMaterials()
 {

     RestAdapter adapter = new RestAdapter.Builder().setEndpoint(Root_Url).build();
     Log.i(TAG , "hERE IS THE LINK"+adapter.toString());
     materialAPI api = adapter.create(materialAPI.class);
     api.getMaterials(new Callback <List<materialClass>>() {
         @Override
         public void success(List<materialClass> list, Response response) {

             materials = list;
             showList();
             customAdapter customAdapter = new customAdapter();
             listView.setAdapter(customAdapter);
         }

         @Override
         public void failure(RetrofitError error) {

         }
     });

 }

上面的代码工作正常,我可以得到我所有的材料,但我接下来想要实现的是获取任何 id 的材料。当用户选择特定材料时,我想将 id 传递到 get url 中,以便获取记录

意思是我必须做这样的事情

@GET("/mlearningServices/Course/{myId}")

..

如何将 myId 添加到回调方法。这是我第一次使用改造

【问题讨论】:

    标签: android retrofit


    【解决方案1】:

    使用@Path注解

    @POST("/mlearningServices/Course/{myId}")
    public void getMaterials(@Path("myId") String id, Callback<Response> response);
    

    参考文献:

    【讨论】:

      【解决方案2】:

      您所询问的是path variable。要设置一个,您必须将您的方法签名重写为:

      public void getMaterials(@Path("myId") String id,  Callback<List<materialClass>> response);
      

      这样,定义为 /path/to/your/endpoint/{nameOfPathVariable} 的变量将被注入到传递给方法的字符串参数中。您也可以将其定义为 Integer,retrofit 将尝试相应地转换它。

      【讨论】:

        【解决方案3】:

        解决方案:

        你可以用这个来传递你的id,使用@Path注解

        @GET("/mlearningServices/Course/{myId}")
        Call<materialClass> getMaterials(@Path("myId") String id);
        

        @Path 是您希望在问号 ("?") 之前提供给 GET 方法的一些数据,@Query("..") 是您希望在 "?" 之后提供的一些数据

        希望你能理解。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-15
          • 2019-11-29
          • 1970-01-01
          • 2019-05-30
          • 2014-04-12
          • 2012-04-12
          • 2022-12-04
          相关资源
          最近更新 更多