package com.example.lenovo.ding01.http;
import android.os.Handler;
import com.google.gson.Gson;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class OkHttp {
private static OkHttp instance;
private OkHttpClient client;
private Request request;
Handler handler=new Handler();
private FormBody build;
//单利模式
public OkHttp(){};
public static OkHttp getInstance(){
if (instance==null){
instance=new OkHttp();
return instance;
}else{
return instance;
}
}
//封装doGet
public void doGet(String url, final Class jbean, final NetCallBack netCallBack){
client = new OkHttpClient();
request = new Request.Builder()
.get()
.url(url)
.build();
//创建call对象
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Gson gson=new Gson();
final Object fromJson = gson.fromJson(string, jbean);
handler.post(new Runnable() {
@Override
public void run() {
netCallBack.LoadSuccess(fromJson);
}
});
}
});
}
//doPost方法
public void doPost(String url, final Class jbean, String name, String pwd, final NetCallBack netCallBack){
client = new OkHttpClient();
build = new FormBody.Builder()
.add("name", name)
.add("pwd", pwd)
.build();
Request request = new Request.Builder()
.url(url)
.post(this.build)
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String s = response.body().string();
Gson gson=new Gson();
final Object o = gson.fromJson(s, jbean);
handler.post(new Runnable() {
@Override
public void run() {
netCallBack.LoadSuccess(o);
}
});
netCallBack.LoadSuccess(s);
}
});
}
public interface NetCallBack{
void LoadSuccess(Object obj);
void LoadFail();
}
}