此类派生自
JsonHttpResponseHandler,所在jar包:
JunsNetHelper.jar。
使用方法参考:
http://my.oschina.net/bv10000/blog/206388
/*
* 获得json对象
*/
public void requestjson() {
AsyncHttpClient client = new AsyncHttpClient();
params = new RequestParams();
params.put("quest", "login");
client.post("http://172.198.1.50/remote/test.ashx", params,
new JsonHttpResponseHandler() {
@Override
public void onSuccess(JSONObject response) {
try {
Toast.makeText(MainActivity.this, response.getString("result"), Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, "ddd", Toast.LENGTH_LONG).show();
}
}
});
}
这里
BaseJsonRes
做了一个逻辑处理,再根据结果当做成功与失败分开来处理:
public abstract class BaseJsonRes extends JsonHttpResponseHandler {
@Override
public void onSuccess(JSONObject response) {
try {
String result = response.getString(Constants.Result);
// System.out.println("返回的值" + response);
if (result == null) {
Utils.showLongToast(App.getInstance(), Constants.NET_ERROR);
} else if (result.equals("1")) {
String str_data = response.getString(Constants.Value);
onMySuccess(str_data);
} else {
String str = response.getString(Constants.Info);
Utils.showLongToast(App.getInstance(), str);
onMyFailure();
}
} catch (JSONException e) {
e.printStackTrace();
onMyFailure();
}
}
public abstract void onMySuccess(String data);
public abstract void onMyFailure();
}
外部调用者需要onMySuccess、onMyFailure:
netClient.post(Constants.Login_URL, params, new BaseJsonRes() {
@Override
public void onMySuccess(String data) {
Utils.putValue(LoginActivity.this, Constants.UserInfo, data);
Utils.putBooleanValue(LoginActivity.this, Constants.LoginState, true);
Utils.putValue(LoginActivity.this, Constants.NAME, userName);
Utils.putValue(LoginActivity.this, Constants.PWD, DES.md5Pwd(password));
getChatService(userName, DES.md5Pwd(password));
}
@Override
public void onMyFailure() {
getLoadingDialog("正在登录").dismiss();
}
});