Добавить параметр запроса в Retrofit get в Android Studio - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь использовать модификацию для получения записей из моего 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) {

         }
     });

 }

Приведенный выше код работает нормально, и я могу получить все свои материалы, но в следующий раз я хочу получить материал с любым идентификатором,Когда пользователь выбирает особый материал, я хочу передать идентификатор в URL-адрес получения, чтобы я мог получить записи

, что означает, что я должен сделать что-то вроде этого

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

..

Как добавить myId в метод обратного вызова.Это мой первый раз, когда я использую модификацию

Ответы [ 3 ]

0 голосов
/ 08 сентября 2018

Используйте аннотацию @Path

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

Ссылки:

0 голосов
/ 08 сентября 2018

Решение:

Вы можете использовать это для передачи своего идентификатора, используйте аннотацию @Path

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

@ Путь - это данные, которые вы хотите предоставить в метод GET до Вопросительного знака ("?"), А @Query ("..") - это данные, которые вы хотите предоставить после "?"

Надеюсь, вы поняли.

0 голосов
/ 07 сентября 2018

То, о чем вы спрашиваете, называется path variable. Чтобы установить его, вы должны переписать сигнатуру вашего метода следующим образом:

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

Таким образом, переменная, определенная как / path / to / your / endpoint / {nameOfPathVariable}, будет вставлена ​​в этот параметр String, переданный методу. Вы также можете определить его как целое число, и при модификации его попытается привести в соответствие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...