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"/>