Code in fragment class:
private AQuery aq; String svalue = null; // keep current session id @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); aq = new AQuery(getActivity(), rootView); aq.id(R.id.loginbutton).clicked(this, "onLoginButtonClick"); aq.id(R.id.logoutbutton).clicked(this, "onLogoutButtonClick"); aq.id(R.id.dobutton).clicked(this, "onDoButtonClick"); return rootView; }
Login:
public void onLoginButtonClick(View view) { String url = "http://10.0.3.2:8090/GrailsTest1/j_spring_security_check"; Map<string object=""> params = new HashMap<string object="">(); params.put("j_username", "admin"); params.put("j_password", "admin"); params.put("ajax", "true"); cb = new AjaxCallback<jsonobject>(); cb.url(url).type(JSONObject.class).params(params).weakHandler(this, "loginCallback"); cb.header("Content-Type", "application/x-www-form-urlencoded"); aq.ajax(cb); } public void loginCallback(String url, JSONObject json, AjaxStatus status) throws JSONException { if(json != null) { List<cookie> cookieList = new ArrayList<cookie>(); cookieList = status.getCookies(); for (Cookie cookie : cookieList) { if(cookie.getName().equals("JSESSIONID")) { svalue = cookie.getValue(); } else { svalue = null; } // do something when succeed to log in } else { // do something when fail to log in } }
Logout:
public void onButton3Click(View view) { String url = "http://10.0.3.2:8090/GrailsTest1/logout/index?ajax=true"; Map<string object=""> params = new HashMap<string object="">(); AjaxCallback<string> cb = new AjaxCallback<string>(); if(svalue != null) cb.cookie("JSESSIONID", svalue); cb.url(url).type(JSONObject.class).params(params).weakHandler(this, "logoutCallback"); aq.ajax(cb); } public void logoutCallback(String url, String json, AjaxStatus status) throws JSONException { if(json != null){ // do something when succeed to log out }else{ // do something when fail to log out } }
Do something need to run with or whithout authentication:
public void onDoButtonClick(View view) { String url = "http://10.0.3.2:8090/GrailsTest1/main/doAction?ajax=true"; AjaxCallback<string> cb = new AjaxCallback<string>(); cb.url(url).type(JSONObject.class).weakHandler(this, "jsonCallback"); if(svalue != null) cb.cookie("JSESSIONID", svalue); aq.ajax(cb); } public void jsonCallback(String url, JSONObject json, AjaxStatus status) throws JSONException { if(json != null){ // do something when succeed to get data from server }else{ // do something when fail to get data from server } }
No comments:
Post a Comment