新建Bean类 返回成功或者失败提示
public class BaseBean {
private String code;
private String msg;
public String getCode() {
return code;
}
public String getMsg() {
return msg;
}
public void setCode(String code) {
this.code = code;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
net包下
Api类用于网络接口
ok post请求public interface OnNetListener<T> { public void onSuccess(T t); public void onFailure(Exception e); }
public class HttpUtls {
private static HttpUtls httpUtls;
private final OkHttpClient client;
private HttpUtls(){
client=new OkHttpClient.Builder().build();
}
public static HttpUtls getHttpUtls(){
if(httpUtls==null){
synchronized (HttpUtls.class){
if(httpUtls==null){
httpUtls=new HttpUtls();
}
}
}
return httpUtls;
}
public void doPost(String url, Map<String,String> params, Callback callback) {
if(params==null){
throw new RuntimeException("参数为空");
}
FormBody.Builder builder = new FormBody.Builder();
for (Map.Entry<String, String> entry : params.entrySet()) {
builder.add(entry.getKey(), entry.getValue());
}
FormBody formbody = builder.build();
Request request = new Request.Builder().url(url).post(formbody).build();
client.newCall(request).enqueue(callback);
}
}
成功或者失败回调的接口
public interface OnNetListener<T> {
public void onSuccess(T t);
public void onFailure(Exception e);
}
登陆的接口
public interface ILoginModel {
public void doPost(Map<String,String> params, OnNetListener<BaseBean> onNetListener);
}
public class LoginModel implements ILoginModel {
private Handler handler=new Handler(Looper.getMainLooper());
@Override
public void doPost(Map<String, String> params, final OnNetListener<BaseBean> onNetListener) {
HttpUtls.getHttpUtls().doPost(Api.LoginUrl, params, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
onNetListener.onFailure(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
final BaseBean baseBean = new Gson().fromJson(string, BaseBean.class);
handler.post(new Runnable() {
@Override
public void run() {
onNetListener.onSuccess(baseBean);
}
});
}
});
}
}
View层
获取手机号,密码,显示的接口
public interface IMainactivity {
public String getAccount( );
public String getPwD( );
public void Show(String Str);
}
p层
处理数据
public class MainPrestener {
private ILoginModel iLoginModel;
private IMainactivity iMainactivity;
public MainPrestener(IMainactivity iMainactivity) {
this.iMainactivity = iMainactivity;
iLoginModel=new LoginModel();
}
public void doPost(){
String account = iMainactivity.getAccount();
String pwD = iMainactivity.getPwD();
HashMap<String,String> params=new HashMap<>();
params.put("mobile", account);
params.put("password", pwD);
iLoginModel.doPost(params, new OnNetListener<BaseBean>() {
@Override
public void onSuccess(BaseBean baseBean) {
iMainactivity.Show(baseBean.getMsg());
}
@Override
public void onFailure(Exception e) {
}
});
}
}
Mainactivity
获取资源ID,设置监听,调用IMainactivity
重写那几个方法,实例化 MainPrestener