如何通过Retrofit在Web服务上获取JSON数组

时间:2018-12-13 07:47:52

标签: android json retrofit

我有一个返回JSON数组的.net Web服务。我在YouTube上观看了一些教程,但是没有用。我的Web服务没有任何参数。只是返回JSON数组。

这是我的界面代码:

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;
    }

}

这是我在活动中的呼唤

   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到浏览器时,它显示有关错误调用的错误。我的Web服务的链接是这样的:http://localhost:50553/ClientControl.asmx?op=btGetTable我如何通过Retrofit调用此服务?或者您对我应该使用哪个库有任何建议?

0 个答案:

没有答案