1.之前写的代码,更新下博客.
public class OkhttpGJ { private OkHttpClient mClient=null; public OkHttpClient getClientInstance(){ //第一步:使用单例模式,获取okhttpclient if (mClient==null){ synchronized (OkhttpGJ.class){ if (mClient==null){ mClient=new OkHttpClient(); } } } return mClient; } interface NetCallBack{ //第二部:创建接口,用来回调请求结果 void onSuccess(String result); //网络请求成功返回的结果 void onFail(Exception e); //网络请求失败,返回的异常 } private Request request=null; public void okHttpGet(Context context,String url, final NetCallBack callBack){ //第三部:进行get请求 request = new Request.Builder().url(url).build(); //创建请求 getClientInstance().newCall(request).enqueue(new Callback() { //将请求添加到请求对累中 @Override public void onFailure(Call call, IOException e) { //失败 callBack.onFail(e); //将异常传回去 } @Override public void onResponse(Call call, Response response) throws IOException { callBack.onSuccess(request.body().toString()); //将请求的数据转成string格式回传 } }); } public void okHttpPost(final Context context,String url, RequestBody requestBody, final NetCallBack callBack){ //post请求 request = new Request.Builder().url(url).post(requestBody).build(); getClientInstance().newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { Toast.makeText(context, "服务器连接失败", Toast.LENGTH_SHORT).show(); callBack.onFail(e); } @Override public void onResponse(Call call, final Response response) throws IOException { Toast.makeText(context,"网络请求成功.",Toast.LENGTH_SHORT).show(); final String result = response.body().string(); callBack.onSuccess(result); //请求成功返回 } }); } }