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