封装安卓的okhttp

君不见长松卧壑困风霜,时来屹立扶明堂。这篇文章主要讲述封装安卓的okhttp相关的知识,希望能为你提供帮助。
1.封装了get方法,handler更新主线程,回调的onsuccess,onfailure,onerror等方法
2.配置文件

api ‘com.android.support:recyclerview-v7:26.1.0‘ api ‘com.squareup.okhttp3:okhttp:3.9.1‘ //fastjson api ‘com.alibaba:fastjson:1.2.44‘

 
3.先建立一个http包,建BaseHttpCallback和OkHttpHelper这2个类,以后会加loading...这个东西
 
 
public class OkHttpHelper {private static OkHttpClient okHttpClient; private android.os.Handler handler; private OkHttpHelper(){ okHttpClient =new OkHttpClient(); handler =new android.os.Handler(Looper.getMainLooper()); }; public static OkHttpHelper getInstance(){ return new OkHttpHelper(); } public void get(String url,BaseHttpCallback baseHttpCallback){ Request request = buildRequest(url,null,HttpMethodType.GET); doRequest(request, baseHttpCallback); }public void post(String url, Map< String,String> params,BaseHttpCallback baseHttpCallback){ Request request = buildRequest(url,null,HttpMethodType.POST); doRequest(request, baseHttpCallback); }public void doRequest(final Request request, final BaseHttpCallback baseHttpCallback){baseHttpCallback.onRequestBefore(request); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { callbackFailure(baseHttpCallback,e); } @Override public void onResponse(Call call, Response response) throws IOException { if(response.isSuccessful()){ String s= response.body().string(); callbackSuccess(baseHttpCallback,response,s); }else{ callbackError(baseHttpCallback,response,response.code()); } } }); }private Request buildRequest(String url,Map< String,String> params,HttpMethodType methodType){ Request.Builder builder = new Request.Builder(); builder.url(url); if(methodType==HttpMethodType.GET){ builder.get(); }else if(methodType==HttpMethodType.POST){} return builder.build(); }enum HttpMethodType{ GET, POST }private void callbackSuccess(final BaseHttpCallback callback, final Response response, final String s){ handler.post(new Runnable() { @Override public void run() { callback.onSuccess(response,s); } }); }private void callbackError(final BaseHttpCallback callback, final Response response, final int code){ handler.post(new Runnable() { @Override public void run() { callback.onError(response,code,null); } }); }private void callbackFailure(final BaseHttpCallback callback, final Exception e){ handler.post(new Runnable() { @Override public void run() { callback.onFailure(e); } }); }}

public abstract class BaseHttpCallback {public abstract void onRequestBefore(Request request); public abstract void onSuccess(Response response,String string); public abstract void onError(Response response,int code,Exception e); public abstract void onFailure(Exception e); }

4. 还另外封装了个User类
public class User { public String result; public List< Data> data; public class Data{ public String name; public String age; public String getName() { return name; }public StringgetAge() { return age; } } public String getResult() { return result; } public List< Data> getDatas() { return data; } }

 
5.activity中调用例子
OkHttpHelper httpHelper=OkHttpHelper.getInstance(); String url = "http://www.baidu.com"; httpHelper.get(url,new BaseHttpCallback(){@Override public void onRequestBefore(Request request) {}@Override public void onSuccess(Response response, String string) {}@Override public void onError(Response response, int code, Exception e) {}@Override public void onFailure(Exception e) { Toast.makeText(MainActivity.this,"当前网络不可用,请检查网络",Toast.LENGTH_LONG).show(); } });

 
【封装安卓的okhttp】6.未完善的,没有post,没有loading效果,

    推荐阅读