Я хочу получить данные из базы данных Mysql через Retrofit2 API - PullRequest
0 голосов
/ 27 апреля 2018

На самом деле я хочу получить данные из базы данных Mysql через retrofit2 api. Я получаю данные на основе какой-то категории, например категории 1 или 2, но получаю ошибку @Field parameters can only be used with form encoding. (parameter #1)for method APIService.savePost

Вот мой код интерфейса:

public interface APIService {

    @GET("fetchtext.php")
    Call<List<DataStored>> savePost(@Field("catId") String catId);
    @GET("testing.php")
    Call<List<DataStored>> searchcategory(@Field("catId") String catId,
            @Field("SubCatego") String SubCatego);
}

Вот мой класс ApiUtils:

    public class ApiUtils {

  private ApiUtils() {}

    public static final String BASE_URL = "http://192.168.9.10/";

    public static APIService getAPIService() {

        return RetrofitClient.getClient(BASE_URL).create(APIService.class);
    }
}

Класс RetrofitClient:

public class RetrofitClient {
    private static Retrofit retrofit = null;
    public static Retrofit getClient(String baseUrl) {
        if (retrofit==null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(baseUrl)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }}

Код в фрагменте, где я создаю вызов RetroApi:

 mAPIService = ApiUtils.getAPIService();
     mAPIService.savePost(category).enqueue(new Callback<List<DataStored>>() {
            @Override
            public void onResponse(Call<List<DataStored>> call, Response<List<DataStored>> response) {
                dataStored=  response.body();
                myRecyclerAdapter.addItems(dataStored);
            }

            @Override
            public void onFailure(Call<List<DataStored>> call, Throwable t) {

            }
        });

Скажите, пожалуйста, как я могу отправить категорию в базу данных, чтобы сравнить, если это данные категорий доступны в базе данных, затем данные преобразуются в Json и отправляются обратно в Android для отображения на RecyclerView в Android.

1 Ответ

0 голосов
/ 27 апреля 2018
@GET("fetchtext.php")
Call<List<DataStored>> savePost(@Field("catId") String catId);

@ Поле используется для отправки данных POST. Для получения данных вы должны использовать @ Query

@GET("fetchtext.php")
Call<List<DataStored>> savePost(@Query("catId") String catId);
...