0

I am tring to fetch data and but its show nothing. even when I am trying to print on console same things happend

 JsonObjectRequest jsonRequest = new JsonObjectRequest
            (Request.Method.GET, onewayUrl, null, response -> {


                try {
                    JSONArray jsonArray = new JSONArray(response);

                    for (int i = 0; i < jsonArray.length(); i++) {

                        JSONObject jsonObject = jsonArray.getJSONObject(i);
                        String Career = jsonObject.getString("career");

                        textView = findViewById(R.id.text);
                        textView.setText(Career);

                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }


            }, error -> {
                error.printStackTrace();
            });

    Volley.newRequestQueue(AfterSearch.this).add(jsonRequest);
    jsonRequest.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 1, 1.0f));

I got Some error looks like.

W/System.err:     at org.json.JSON.typeMismatch(JSON.java:112)
W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:169)
W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:182)
W/System.err:     at 
com.android.volley.toolbox.JsonObjectRequest.parseNetworkResponse(JsonObjectRequest.java:98)  

2 Answers 2

1
 String url = "https://api.flyfarint.com/v.1.0.0/AirSearch/oneway.php?tripType=oneway&journeyfrom=DAC&journeyto=DXB&departuredate=2022-10-30&adult=1&child=0&infant=0";
    private ProgressDialog pDialog;
   pDialog = new ProgressDialog(this);
        // Showing progress dialog before making http request
        pDialog.setMessage("Loading...");
        pDialog.show();
        RequestQueue queue = Volley.newRequestQueue(MainActivity.this);

        JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null, response -> {
            hidePDialog();
            for (int i = 0; i < response.length(); i++) {

                try {
                    JSONObject responseObj = response.getJSONObject(0); //showing here only one using recyclerview you can show all.USE "i" for all records with model.
                    String careerName = responseObj.getString("careerName");
                    TextView textView=findViewById(R.id.text);
                    textView.setText(careerName);

                } catch (JSONException e) {
                    e.printStackTrace();
                    hidePDialog();
                }
            }
        }, error -> hidePDialog());
        jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 1, 1.0f));
        queue.add(jsonArrayRequest);
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        hidePDialog();
    }

    private void hidePDialog() {
        if (pDialog != null) {
            pDialog.dismiss();
            pDialog = null;
        }
    }
Sign up to request clarification or add additional context in comments.

Comments

1

Usage of Retrofit is pretty more easy

build.gradle

implementation 'com.google.code.gson:gson:2.9.1'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

ApiService.java

public interface ApiService {
  @GET("AirSearch/oneway.php?tripType=oneway&journeyfrom=DAC&journeyto=DXB&departuredate=2022-10-30&adult=1&child=0&infant=0")
  Call<List<Item>> getData();
}

ApiUtil.java

public final class ApiUtil {
    private static Retrofit retrofit;

    private static Retrofit provideRetrofit() {
        if(retrofit != null) {
            return retrofit;
        }
        retrofit = new Retrofit.Builder()
                .baseUrl("https://api.flyfarint.com/v.1.0.0/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        return retrofit;
    }

    public static ApiService getApi() {
        return provideRetrofit().create(ApiService.class);
    }
}

MainActivity.java

private void fetchData() {
    ApiUtil.getApi().getData().enqueue(new Callback<List<Item>>() {
            @Override
            public void onResponse(@NonNull Call<List<Item>> call, @NonNull Response<List<Item>> response) {
                if(response.isSuccessful() && response.body() != null) {
+                   List<Item> data = response.body();
                    // data contains parsed json
                }
            }

            @Override
            public void onFailure(@NonNull Call<List<Item>> call, @NonNull Throwable t) {
                Log.e("ApiUtil", t.toString());
            }
        });
}

Item.java

public class Item {
    
    @SerializedName("system")
    @Expose
    public String system;
    @SerializedName("segment")
    @Expose
    public String segment;
    @SerializedName("career")
    @Expose
    public String career;
    @SerializedName("careerName")
    @Expose
    public String careerName;
    @SerializedName("BasePrice")
    @Expose
    public String basePrice;
    @SerializedName("Taxes")
    @Expose
    public String taxes;
    @SerializedName("price")
    @Expose
    public String price;
    @SerializedName("clientPrice")
    @Expose
    public String clientPrice;
    @SerializedName("departure")
    @Expose
    public String departure;
    @SerializedName("departureTime")
    @Expose
    public String departureTime;
    @SerializedName("departureDate")
    @Expose
    public String departureDate;
    @SerializedName("arrival")
    @Expose
    public String arrival;
    @SerializedName("arrivalTime")
    @Expose
    public String arrivalTime;
    @SerializedName("arrivalDate")
    @Expose
    public String arrivalDate;
    @SerializedName("flightduration")
    @Expose
    public String flightduration;
    @SerializedName("bags")
    @Expose
    public String bags;
    @SerializedName("seat")
    @Expose
    public String seat;
    @SerializedName("class")
    @Expose
    public String _class;
    @SerializedName("refundable")
    @Expose
    public String refundable;
    @SerializedName("segments")
    @Expose
    public List<Segment> segments = null;
    @SerializedName("transit")
    @Expose
    public Transit transit;
}

Segment.java

public class Segment  {
    @SerializedName("marketingcareer")
    @Expose
    public String marketingcareer;
    
    @SerializedName("marketingcareerName")
    @Expose
    public String marketingcareerName;
    
    @SerializedName("marketingflight")
    @Expose
    public String marketingflight;
    @SerializedName("operatingcareer")
    @Expose
    public String operatingcareer;
    @SerializedName("operatingflight")
    @Expose
    public String operatingflight;
    @SerializedName("departure")
    @Expose
    public String departure;
    @SerializedName("departureAirport")
    @Expose
    public String departureAirport;
    @SerializedName("departureLocation")
    @Expose
    public String departureLocation;
    @SerializedName("departureTime")
    @Expose
    public Date departureTime;

    @SerializedName("arrival")
    @Expose
    public String arrival;

    @SerializedName("arrivalTime")
    @Expose
    public Date arrivalTime;

    @SerializedName("arrivalAirport")
    @Expose
    public String arrivalAirport;
    @SerializedName("arrivalLocation")
    @Expose
    public String arrivalLocation;
    @SerializedName("flightduration")
    @Expose
    public String flightduration;
    @SerializedName("bookingcode")
    @Expose
    public String bookingcode;
    @SerializedName("seat")
    @Expose
    public String seat;
}

Transit.java

public class Transit {

    public final static long serialVersionUID = 5413373419576714522L;
    @SerializedName("transit1")
    @Expose
    public String transit1;
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.