HttpUtils类:
package com.baway.a1509amvp.view.net;
import android.content.Context;
import android.widget.Toast;
import com.baway.a1509amvp.view.utils.NetworkUtils;
import java.util.Map;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
/**
* Created by peng on 2017/11/3.
*/
public class HttpUtils {
private static volatile HttpUtils httpUtils;
private final OkHttpClient client;
private Context context;
private HttpUtils(Context context) {
//1.创建OkHttpClient
client = new OkHttpClient();
this.context = context;
}
public static HttpUtils getHttpUtils(Context context) {
if (httpUtils == null) {
synchronized (HttpUtils.class) {
if (httpUtils == null) {
httpUtils = new HttpUtils(context);
}
}
}
return httpUtils;
}
/**
* GET 请求
*
* @param url 请求的地址
* @param callback
*/
public void doGet(String url, Callback callback) {
//判断是否有网
if (!NetworkUtils.isAvailable(context)) {
//网络不可用
Toast.makeText(context, "网络不可用", Toast.LENGTH_SHORT).show();
return;
}
//2.创建一个Request
Request request = new Request.Builder().url(url).build();
//3.发送请求
client.newCall(request).enqueue(callback);
}
/**
* POST请求
*
* @param url
* @param params
* @param callback
*/
public void doPost(String url, Map<String, String> params, Callback callback) {
//2.创建一个请求
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);
}
}
Api类:
public interface Api {
public static final boolean IS_ONLINE = true;
public static final String DEV = "http://169.254.222.37";//开发时用的ip
public static final String ONLINE = "http://120.27.23.105";//线上的ip
public static final String HOST = IS_ONLINE ? ONLINE : DEV;
public static final String LOGIN = HOST + "/user/login";
public static final String REGISTER = HOST + "/user/reg";
}
OnNetListener<T>类:
package com.baway.a1509amvp.view.net;
/**
* Created by peng on 2017/11/3.
*/
public interface OnNetListener<T> {
//成功
public void onSuccess(String str);
public void onSuccess(T t);
//失败
public void onFailure(Exception e);
}