kaveer
2/19/2017 - 6:03 PM

API call with endpoint

API call with endpoint

//in model
public class Greeting {
    private String id;
    private String content;

    public String getId() {
        return this.id;
    }

    public String getContent() {
        return this.content;
    }
}

//Main Activity
public class Home extends Fragment {

    EditText response;

    public Home() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_home, container, false);

        InitializeEditText(view);

        Button buttonSave   = (Button)view.findViewById(R.id.BtnApiCall);
        buttonSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(isNetworkConnected()){
                    new HttpRequestTask().execute();

                    Toast messageBox = Toast.makeText(getActivity() , "Call API here" , Toast.LENGTH_LONG);
                    messageBox.show();
                }
                else {
                    Toast messageBox = Toast.makeText(getActivity() , "No internet connection" , Toast.LENGTH_LONG);
                    messageBox.show();
                }
            }
        });
        return view;
    }

//call api
    private class HttpRequestTask extends AsyncTask<Void, Void, Greeting> {
        @Override
        protected Greeting doInBackground(Void... params) {
            try {
                final String url = "http://rest-service.guides.spring.io/greeting";
                RestTemplate restTemplate = new RestTemplate();
                restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
                Greeting greeting = restTemplate.getForObject(url, Greeting.class);
                return greeting;
            } catch (Exception e) {
                Log.e("MainActivity", e.getMessage(), e);
            }

            return null;
        }

        @Override
        protected void onPostExecute(Greeting greeting) {
            response.setText(greeting.getContent());

        }
    }

    private void InitializeEditText(View view) {
        response = (EditText) view.findViewById(R.id.txt_res);
    }

//check internet connection
    protected boolean isNetworkConnected() {
        try {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
            return (mNetworkInfo == null) ? false : true;

            }catch (NullPointerException e){
                return false;

            }
    }

}

//in android manifest
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>