public T decode(String json, Class<T> cls) {
Gson gson = new Gson();
return gson.fromJson(json, cls);
}
public static <
T extends BaseResult>
void get(String url
, RequestParams params
,
final Class<
T> tClass
, final MyLoadingCallback listener) {
if (listener !=
null && !NetUtils.
isConnected(MyApplication.
getContext())) {
listener.failure(
RSP_CODE_NET_ERROR, TDString.
getStr(R.string.
net_connexted_error))
;
return;
}
AsyncHttpClientUtil2.
getAsyncHttpClient().get(url
, params
, new HomerAsyncHttpResponseHandler(MyApplication.
getInstance()) {
@Override
public void onSuccess(
int statusCode
, Header[] headers
, byte[] responseBody) {
super.onSuccess(statusCode
, headers
, responseBody)
;
if (
null != responseBody) {
String json =
new String(responseBody)
;
Gson gson =
new Gson()
;
T apiResult = gson.fromJson(json
, tClass)
;
String code = apiResult.getCode()
;
switch (code) {
case "999":
listener.success(gson.fromJson(json
, tClass))
;
break;
case "22":
goLoginActivity()
;
listener.failure(Integer.
parseInt(code)
, "用户未登录,请先登录")
;
break;
default:
MyLog.
d(
TAG, "sendActCode onSuccess failed json=" + json)
;
listener.failure(Integer.
parseInt(code)
, apiResult.getMessage())
;
break;
}
}
listener.completed()
;
}
@Override
public void onFailure(
int statusCode
, byte[] responseBody) {
super.onFailure(statusCode
, responseBody)
;
if (
null != responseBody) {
String failureStr =
new String(responseBody)
;
MyLog.
d(
TAG, "onFailure =" + failureStr)
;
listener.failure(
RSP_CODE_NET_ERROR, failureStr)
;
}
listener.completed()
;
}
})
;
}
转载请注明原文地址: https://ju.6miu.com/read-963464.html