Как получить массив JSON на веб-сервис через Retrofit - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть веб-сервис .net, который возвращает JSON Array.Я смотрел некоторые уроки на YouTube, но это не сработало.Мой веб-сервис не получает никаких параметров.Просто возвращает JSON Array.

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

public interface Api {
    String BASE_URL = "http://localhost:50553/ClientControl.asmx";
    @FormUrlEncoded
    @GET("?op=btGetTable")
    Call<List<WebServiceDenemeKayitlar>> getRecords();
}

Вот мои значения, которые возвращаются из JSON и получатели для него.

public class WebServiceDenemeKayitlar {
        private String KODU;
        private String ACIKLAMA;
        private boolean KAPALI_FL;
        private String TARIH;
        private short DURUM;
        private int TUTAR;

    public WebServiceDenemeKayitlar(String KODU, String ACIKLAMA, boolean KAPALI_FL, String TARIH, int TUTAR, short DURUM) {
        this.KODU = KODU;
        this.ACIKLAMA = ACIKLAMA;
        this.KAPALI_FL = KAPALI_FL;
        this.TARIH = TARIH;

        this.TUTAR = TUTAR;
        this.DURUM = DURUM;
    }
    public String getKODU() {
        return KODU;
    }

    public String getACIKLAMA() {
        return ACIKLAMA;
    }

    public boolean isKAPALI_FL() {
        return KAPALI_FL;
    }

    public String getTARIH() {
        return TARIH;
    }

    public int getTUTAR() {
        return TUTAR;
    }

    public short getDURUM() {
        return DURUM;
    }

}

А вот мой вызов в Activity

   public void InitData(){
        String path = "http://localhost:50553/ClientControl.asmx";

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Api.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        Api api = retrofit.create(Api.class);

        Call<List<WebServiceDenemeKayitlar>> call = api.getRecords();
        Log.wtf("URL Called", call.request().url() + "");

        call.enqueue(new Callback<List<WebServiceDenemeKayitlar>>() {

            @Override
            public void onResponse(Call<List<WebServiceDenemeKayitlar>> call, Response<List<WebServiceDenemeKayitlar>> response) {
                List<WebServiceDenemeKayitlar> kayitlar = response.body();

                for(WebServiceDenemeKayitlar kayit : kayitlar){
                    Log.d("KODU" , kayit.getKODU());
                    Log.d("ACIKLAMA" , kayit.getACIKLAMA());
                    Log.d("KAPALI_FL" , String.valueOf(kayit.isKAPALI_FL()));
                    Log.d("TARIH" , kayit.getTARIH());
                    Log.d("TUTAR" , String.valueOf(kayit.getTUTAR()));
                    Log.d("DURUM" , String.valueOf(kayit.getDURUM()));

                }
            }

            @Override
            public void onFailure(Call<List<WebServiceDenemeKayitlar>> call, Throwable t) {
                Toast.makeText(getApplicationContext() , t.getMessage(),Toast.LENGTH_SHORT).show();
            }
        });

Я кое-что понял, и речь идет о базовом URL.Когда я публикую URL-адрес, который пытается установить браузер, он показывает ошибку о неправильном вызове.Моя ссылка на WebService выглядит так: http://localhost:50553/ClientControl.asmx?op=btGetTable Как я могу вызвать эту услугу через Retrofit?Или у вас есть какие-либо предложения о том, какую библиотеку мне использовать?

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