public class OkManager {
private static volatile OkManager manager;//volatile比synchronized更加轻量级一些,使用起来比较方便,大神们用
private Handler handler;
private OkHttpClient client;
//通过构造方法创建Handler 对象和HttpClient对象
public OkManager() {
client=new OkHttpClient();
this.handler =new Handler();
}
//单例模式返回
public static OkManager getInStance(){
OkManager instance=null;
if (manager == null) {
synchronized (OkManager.class){
if (instance == null) {
instance=new OkManager();
manager=instance;
}
}
}
return manager;
};
//设置接口
interface CallBack{
String getString(String str);
}
//暴露方法post
//1、创建request对象
public void requestNet(String url, final CallBack callBack){
//2、创建请求体,这个是提交表单
RequestBody body = new FormBody.Builder().add("key", "12eacb4c434f45020d399155be7bd1c3").add("catalog_id", "246").add("rn", "10").add("rn", "10").build();
//3、创建一个请求
Request request=new Request.Builder().post(body).url(url).build();
//4、开始请求网络
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
System.out.println("请求网络失败");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String str=response.toString();
toMainThread(str,callBack);
}
});
}
private void toMainThread(final String str, final CallBack callBack) {
handler.post(new Runnable() {
@Override
public void run() {
callBack.getString(str);
}
});
}
}